E D R , A S I H C RSS

Full text search for "Method 타입"

Method 타입


Search BackLinks only
Display context of search results
Case-sensitive searching
  • Refactoring/BadSmellsInCode . . . . 34 matches
          * 같은 클래스내에 2개이상의 메소드들에 중복코드 존재시 - ExtractMethod
          * 두개 이상 서브클래스 내 중복코드시 - ExtractMethod 한뒤 PullUpField
          * 코드는 비슷하지만 똑같지는 않은 경우 - 비슷한 부분에 대해서 ExtractMethod
         ExtractMethod, ExtractClass, PullUpMethod, FormTemplateMethod
         == Long Method ==
          * 대부분의 경우에 대해서 - ExtractMethod
          * ExtractMethod 하는중 parameter를 많이 넘겨야 하거나, 임시변수를 많이 사용하게 되는 경우 - ReplaceTempWithQuery, IntroduceParameterObject, PreserveWholeObject, ReplaceMethodWithMethodObject
         ExtractMethod, ReplaceTempWithQuery, ReplaceMethodWithMethodObject, DecomposeConditional
          * When you can get the data in one parameter by making a request of an object you already know about - ReplaceParameterWithMethod
         ReplaceParameterWithMethod, IntroduceParameterObject, PreserveWholeObject
          * 바뀌는 부분들에 대해 MoveMethod, MoveField 하여 하나의 클래스에 넣는다. (없으면 새로 하나 클래스 생성할것)
         MoveMethod, MoveField, InlineClass
         MoveMethod, MoveField, ExtractMethod
         클래스의 변수선언 필드나 함수 프로토타입 같은 곳에 있는, 항상 같이 몰려다니는 데이터 아이템들
          * switch-case 부분을 ExtractMethod 한 뒤, polymorphism이 필요한 class에 MoveMethod 한다. 그리고 나서 ReplaceTypeCodeWithSubclasses 나 ["ReplaceTypeCodeWithState/Strategy"] 를 할 것을 결정한다. 상속구조를 정의할 수 있을때에는 ReplaceConditionalWithPolyMorphism 한다.
          * polymorphism을 이용하기에는 너무 작아 오히려 cost가 더 드는 경우 - ReplaceParameterWithExplicitmethods
         ReplaceConditionalWithPolymorphism, ReplaceTypeCodeWithSubclasses, ["ReplaceTypeCodeWithState/Strategy"], ReplaceParameterWithExplicitMethods, IntroduceNullObject
         MoveMethod, MoveField
          * 추상적인 두리뭉실한 메소드 이름 -_-; - RenameMethod 로 지상으로 내려오도록 하라는.. --;
         CollapseHierarchy, InlineClass, RemoveParameter, RenameMethod
  • 새싹교실/2012/startLine . . . . 23 matches
          * 변수의 개념과 타입.
          * 함수의 역할과 인자/리턴 타입에 따른 함수의 종류.
          * malloc 함수 = 힙에 배당되는 메모리, 변수 타입에 따라 할당된 값에 따라 생기는 메모리(변수?)
          * 추상화의 측면에서 보는 타입과 연산(operation).
          * 정모 전에 두 시간, 정모 끝나고 두 시간이 걸린 정말 긴 새싹이었습니다. ;;;; 처음 계획으로는 재현이나 성훈이랑 비슷하게 구조체 문법과 사용에 대해서 간단하게 다룰 생각이었는데 환희가 왜 구조체가 필요한지에 대한 이야기를 하면서 이야기가 많이 다른 방향으로 흘러갔네요. 일단 구조체가 필요한 이유를 추상화의 관점에서 추상화 한 타입(구조체)과 타입에 관한 연산(함수)을 제공하기 위해서라고 말을 했는데 그래도 직접 피부에 와 닿았을지 어떨지는 좀 걱정입니다. 역시 이런 부분은 직접적으로 경험을 해 보지 않으면 안 될 것 같네요. 한 시스템(도서관 관리 프로그램이나 은행 시스템 등)을 재현이, 성훈이랑 셋이서 쪼개서 만들어 보게 하거나 하는 게 좀 괜찮지 않을까 싶습니다. 나중에 시켜봐야지. - [서민관]
          * 전체적으로 문자열과 문자열을 다루는 함수만에 초점을 맞춰서 수업을 진행했습니다. 그런데 아무래도 첫 시간에 못지 않게 진행이 늘어졌던 시간이 아니었나 싶습니다. 사실 문자열 함수들은 단순 함수니만큼 인자들을 보고 쓰는 것에 익숙하다면 알아서도 보고 쓸 수준이긴 한데, 그래도 다들 그런 것을 찾아서 써 보거나 한 경험이 별로 없는 만큼 한 번쯤 그런 함수들을 찾아서 쓰는 시간을 가지는 것도 나쁘지 않지 않을까 싶었는데 생각보다 좀 진행이 늘어졌군요. 단순히 설명만 이어졌기 때문인가. 그래도 이번 시간에 굳이 문자열과 관련 함수를 다룬 것은 C언어에서 문자열을 단순한 char의 *가 아닌 하나의 타입으로 보고 그와 관련된 연산(함수)을 제공했다는 것을 한 번쯤 생각해봤으면 합니다. - [서민관]
         {{{////////////////////////////////////// 기본 타입, 기본 타입 + 포인터
         char a; // a의 타입? 1. 메모리에 a 그려보기.
         int b; // b의 타입? 1. 메모리에 b 그려보기.
         char c[10]; // c의 타입?, 1. 선언과 동시에 0으로 초기화 해 보기., 2. 반복문을 이용해서 원소마다 초기화 해 보기., 3. c[0]의 타입?
         char *d; // d의 타입? char 10개 분량의 배열로 선언과 동시에 초기화 해 보기.
         //////////////////////////////////////// 사용자 정의 타입, 사용자 정의 타입 + 포인터
         Person p; // p의 타입? 1. 메모리에 p의 모양 그려보기.
         Person pArr[10]; // pArr의 타입? 1. 메모리에 pArr의 모양 그려보기.
         Person *p2; // p2의 타입? 1. 메모리에 p2의 모양 그려보기.
         Person *ppa[10] // ppa의 타입? 1. 메모리에 ppa의 모양 그려보기., 2. ppa[0]의 타입? 3. ppa[0] 초기화 해 보기. 4. ppa[0]의 내용물에 접근해 보기.
         Person **ppb // ppb의 타입? 1. 메모리에 ppb의 모양 그려보기., 2. ppb[0]의 타입? 3. ppb[0] 초기화 해 보기., 4. ppb[0]의 내용물에 접근해 보기.
  • 작은자바이야기 . . . . 23 matches
          * static modifier에 대해 애매하게 알고 있었는데 자세하게 설명해주셔서 좋았습니다. static은 타입을 통해서 부르는거라거나 원래 모든 함수가 static인데 객체지향의 다형성을 위해 static이 아닌 함수가 생긴거라는 설명은 신기했었습니다. object.method(message) -> MyType::method(object, method) 부분이 oop 실제 구현의 기본이라는 부분은 잊어버리지 않고 잘 기억해둬야겠습니다. 근데 파이썬에서 메소드 작성시 (self)가 들어가는 것도 이것과 관련이 있는건가요? -[서영주]
          * http://stackoverflow.com/questions/68282/why-do-you-need-explicitly-have-the-self-argument-into-a-python-method
          * 제가 "원래 모든 함수가 static"이라는 의미로 말한건 아닌데 오해의 소지가 있었나보군요. 사실 제가 설명한 가장 중요한 사실은 말씀하신 예에서 object의 컴파일 타입method() 메서드가 가상 메서드라면(static이 아닌 모든 Java 메서드), 실제 어떤 method() 메서드를 선택할 것이냐에 관한 부분을 object의 런타임 타입에 의한다는 부분이었지요. 그러니까 object는 컴파일 타입과 동일하지 않은 런타임 타입을 가질 수 있으며, 다형성의 구현을 위해 implicit argument인 object(=this)의 런타임 타입에 따라 override된 메서드를 선택한다는 사실을 기억하세요. (Python에선 실제 메서드 내에서 사용할 formal parameter인 self를 explicit하게 선언할 수 있다고 보면 되겠지요.) - [변형진]
          * 프로그래머의 타입 보장
          * 리플렉션과 제네릭스를 써서 map -> object와 object -> map을 하는 부분을 해봤습니다. 자바의 일반적인 세 가지 방식의 클래스 내 변수에 대해 getClass, getFields, getMethods를 사용해 private, 나 접근자가 있는 경우의 값을 받아왔습니다. getter를 사용해서 변수 값을 받아올 때 이름이 get으로 시작하는 다른 함수를 제외하기 위해 method.getParameterTypes().length == 0 같은 부분은 이렇게 체크해야 된다는 부분은 나중에 제네릭스 관련으로 써먹을만 할 것 같습니다. 그리고 mapToObject에서는 문제가 없었지만 objectToMap의 경우에는 제네릭스의 type erase때문에 Class<T> expectedType = T.class; 같은 코드를 사용할 수 없어서 map.put(field.getName(), (T)field.get(obj));에서 형변환의 타입 안전성을 위해 인자로 Class<T> valueType을 받아오고 valueType.isAssignableFrom(field.getType())로 체크를 하는 부분도 공부가 많이 됐습니다. - [서영주]
          * @Target : 만들고자 하는 Annotation의 대상 지정. (ElementType.TYPE, ElementType.METHOD)등
          * 함수의 체이닝을 위해서는 generics가 필요함. static method로는 체이닝을 할 수 없음.
          * Data 부분을 인터페이스로 분리 - 내부에서 FactoryMethod 패턴을 사용. factory를 통해서 객체를 생성한다. new를 사용하지 않기 때문에 구체 클래스를 숨길 수 있다.
          * driver에서 connection을 얻어오는 부분에 대해서는 abstract factory가 사용됨 - 추상타입으로부터 추상타입을 만든다.
         //추상타입 객체인 driver로부터 추상타입 객체인 conn 생성
          * factory method 패턴 사용 - factory를 숨겨주는 메소드. 뭘 만들지를 인자만 가지고 결정하는 함수. 위에서는 인자로 주는 문자열에 따라("com.mysql.jdbc.Driver") 무엇을 만들어줄지가 결정된다.
          * abstract factory패턴과 factory method 패턴의 구분
          * 생성 메소드를 호출하는 인스턴스의 타입, 메소드에 들어가는 인자의 두 가지가 새로 생성되는 인스턴스에 영향을 주는 경우 abstract factory
          * 생성 메소드의 인자만으로 생성되는 인스턴스의 타입이 결정될 경우 factory method
          * strategy 패턴, command 패턴, template method 패턴
          * strategy 패턴 - template method 패턴
          반면에 template method 패턴은 부모 클래스에서 전체적인 틀을 만들어 두고 행동에 해당하는 메소드를 상속 + 오버라이드 해서 확장한다.
          * template method 패턴이 사용됐다. protected로 선언된 service method가 template method에 해당되는데 abstract가 아닌 이유는 기본 구현을 주고 원하는 호출에 대해 오버라이드를 해서 사용하기 위함이다.
          * init : servlet이 불러와지면 먼저 실행되는 method. init이 실행되지 않으면 servlet이 로딩되지 않는다.
          * destoy : servlet이 종료될 시 실행되는 method.
  • Gof/FactoryMethod . . . . 20 matches
         = Factory Method =
         Factory Method는 sub 클래스에 대해 구현 사항을 결정할수 있게 만든다.
         Factory Method 패턴은 이에 대한 해결책을 제시한다. 그것은 Document의 sub 클래스의 생성에 대한 정보를 캡슐화 시키고, Framework의 외부로 이런 정보를 이동 시키게 한다.
         Fatory Method 패턴은 이럴때 사용한다.
          * Factory Method가 생성하는 객체에 관한 인터페이스를 정의한다.
          * Procunt 형의 객체를 반환하는 Factory Method를 선언한다. Creator는 또한 기본 ConcreteProduct객체를 반환하는 factory method에 관한 기본 구현도 정의되어 있다.
          * Product객체를 만들기위한 factory method를 호출한다.
          * ConcreteProduct의 인스턴스를 반환하기 위한, factory method를 오버라이드(over ride) 한다.
         Creator는 factor method가 정의되어 있는 Creator의 sub클래스에게 의지한다 그래서 Creator는 CooncreteProduct에 적합한 인스턴스들을 반환한다.
         Factory method는 당신의 코드에서 만들어야한 Application이 요구하는 클래스에 대한 기능과 Framework가 묶여야할 필요성을 제거한다. 그 코드는 오직 Product의 인터페이스 만을 정의한다.; 그래서 어떠한 ConcreteProduct의 클래스라도 정의할수 있게 하여 준다.
         factory method의 잠재적인 단점이라고 한다면 클라이언트가 아마도 단지 특별한 ConcreteProduct객체를 만들기위해서 Creator클래스의 sub클래스를 가지고 있어야 한다는 것일꺼다. 클라이언트가 어떤 식으로든 Creator의 sub클래스를 만들때의, sub클래스를 만드는 것자체는 좋다. 하지만 클라이언트는 이런것에 신경쓸 필요없이 로직 구현에 신경을 써야 한다.
         A potential disadvantage of factory methods is that clients might have to subclass the Creator class just to create a particular ConcreteProduct object. Subclassing is fine when the client has to subclass the Creator class anyway, but otherwise the client now must deal with another point of evolution.
         자, 역시 Factory Method 패턴에 관련한 두가지의 결론을 이야기 한다.:
         Here are two additional consequences of the Factory Method pattern:
          1. ''서브 클래스와 소통 통로 제공''(''Provides hooks for subclasses.'') Factory Method를 적용한 클래스에서 객체의 생성은 항상 직접 만들어지는 객체에 비하여 유연하다. Factory Method는 객체의 상속된 버전의 제공을 위하여, sub클래스와 연결될수 있다.(hook의 의미인데, 연결로 해석했고, 그림을 보고 이해해야 한다.)
          Ducument에제에서 Document클래스는 factory method에 해당하는, 자료를 열람하기 위한 기본 파일 다이얼로그를 생성하는 CreateFileDialog이 호출을 정의할수 있다. 그리고 Document sub클래스는 이러한 factory method를 오버 라이딩해서 만들고자 하는 application에 특화된 파일 다이얼로그를 정의할수 있다. 이러한 경우에 factory method는 추상적이지 않다. 하지만 올바른 기본 구현을 제공한다.
          2. ''클래스 상속 관게에 수평적인(병렬적인) 연결 제공''(''Connects parallel class hierarchies.'') 여태까지 factory method는 오직 Creator에서만 불리는걸 생각해 왔다. 그렇지만 이번에는 그러한 경우를 따지는 것이 아니다.; 클라이언트는 수평적(병렬적)인 클래스간 상속 관계에서 factory method의 유용함을 찾을수 있다.
         Figure클래스는 CreateManipulator라는, 서로 작용하는 객체를 생성해 주는 factory method이다. Figure의 sub클래스는 이 메소드를 오버라이드(override)해서 그들에게 알맞는 Manipulator sub클래스의 인스턴스를 (만들어, )반환한다. Figure 클래스는 아마도 기본 Manipulator인스턴스를 (만들어,) 반한하기 위한 기본 CreateManipulator를 구현했을 것이다. 그리고 Figure의 sub클래스는 간단히 이러한 기본값들을 상속하였다. Figure클래스 들은 자신과 관계없는 Manipulator들에 대하여 신경 쓸필요가 없다. 그러므로 이들의 관계는 병렬적이 된다.
         Factory Method가 두게의 클래스의 상속 관계에서 어떻게 이러한 연결과정을 정의하는지 주목하라. 그것은 서로 고유의 기능을 부여시키는 작업을 한다.
         Factory Method패턴이 적용될때 발생할수 있는 문제에 관해서 생각해 보자.:
  • Java/ModeSelectionPerformanceTest . . . . 19 matches
         한편으로 느껴지는 것으로는, switch 로 분기를 나눌 mode string 과 웹 parameter 와의 중복이 있을 것이라는 점이 보인다. 그리고 하나의 mode 가 늘어날때마다 해당 method 가 늘어나고, mode string 이 늘어나고, if-else 구문이 주욱 길어진다는 점이 있다. 지금은 메소드로 추출을 해놓은 상황이지만, 만일 저 부분이 메소드로 추출이 안되어있다면? 그건 단 한마디 밖에 할말이 없다. (단, 저 논문을 아는 사람에 한해서) GotoStatementConsideredHarmful.
         === 두번째 - Method reflection ===
         import java.lang.reflect.Method;
         public class MethodFullReflection {
          Method method = null;
          method = this.getClass().getMethod("do" + modeExecute[i], new Class[]{int.class});
          method.invoke(this, new Object[]{new Integer(1)});
          } catch (NoSuchMethodException e) {
         단점 : 자바에서는 Method Reflection & Invoke 가 엄청 느리다.; 속도는 밑의꺼 참조.
         import java.lang.reflect.Method;
         public class MethodTableLookupReflection {
          System.out.println("reflection with method initialize table elapsed time :" + (end - start) + "ms ");
          System.out.println("reflection with method elapsed time :" + (end - start) + "ms ");
          private static Map methodMap;
          Method method = (Method) methodMap.get(modeExecute[i]);
          if (method != null)
          method.invoke(this, new Object[]{new Integer(1)});
          private void initReflectionMap(String[] methodNames) {
          methodMap = new HashMap();
          for (int i = 0; i < methodNames.length; i++) {
  • ZeroPageMagazine . . . . 18 matches
         [정모/2004.8.9]에서 팀을 나누어 한 주 동안 프로토타입을 만들어보기로 했습니다.
         어떤 식으로 시작해야 할까요? [유쾌한이노베이션]에서 읽은 내용을 한 번 실험해보면 재밌겠다는 생각을 합니다. 여러 팀으로 나눠서 ZeroPageMagazine의 프로토타입을 만드는거지요. 프로토타입은 완성품이 아니기 때문에, 한 팀에서 여러가지 프로토타입을 만드는 것이 전혀 문제될 것이 없습니다. 오히려 권장할만한 일이죠. 그렇게 프로토타입을 모아 놓고, 좋은 부분을 골라서 합치는 과정을 반복할 수 있을 것입니다.
         저는 아직 해보지 않은 이런 활동을 통해 많은 것을 얻을 수 있는 것이 많으리라 기대합니다. 각 팀은 혼자 하는 일보다 협동해서 일할 때 얼마나 즐겁게 할 수 있는지 배울 것입니다. 덤으로 즐겁게 협동하는 훈련도 할 수 있을 것이고요. 결과가 좋다면, 협동했을 때 그 힘이 개인의 합보다 크다는 느낌을 받을 수도 있습니다. 여러가지 프로토타입을 보면서 좋은 학회지란 어떤 것이라고 스스로 느낄테고요. 여러 곳을 조사하면서 전에 보지 못했던 다른 분야의 지식을 접하는 경험을 할 수도 있습니다. 그냥 접하는 것이 아니고 거기서 개선할 부분을 찾아내는 비판적인 시각도 기를 수 있겠고요. --[Leonardong]
         굳이 프로토타입을 만드는 것보다 각 개인이나 팀이 만든 기사거리나 정보 또는 스터디 결과를 이 페이지에 링크시키는 방식으로 프로토타입을 '''만들어 나가는''' 것이 더 낫다고 생각합니다. 이렇게 하면 일단 원고가 많아지겠죠. 또 프로토타입이란 것에 맞추어 나간다는 느낌을 덜 받게 되니까 더 효율적일 것이라고 생각합니다. 위의 방법도 나쁘진 않은것 같은데 두 가지를 절충하여 생각해볼 수도 있겠군요. --[구자겸]
          좋은 의견입니다. 제 의견도 만들어나가는 프로토타입을 만들면서 그 '''과정'''을 즐기자는 취지입니다. 단, 한 가지 '''완성품'''을 만드는 데에, 또는 한 가지 방법으로 만드는 데에 초점을 두지 말았으면 합니다. 여러 가지 프로토타입을 만들어 보고, 다시 잘 된 것을 골라 개선해 나가자는 의견입니다.
          ''(전략)프로토타입이란 것에 맞추어 나간다는 느낌을 덜 받게 되니까 더 효율적일 것이라고 생각합니다. (후략)'' --[구자겸]이 쓴 윗글 인용
          프로토타입을 만든다는 것이 틀을 정한다는 의미가 아닌가요? 틀을 만들어 놓고 하면 짜임새가 있겠지만 그것에 따라야 한다는 관념 때문에 원고를 작성하는 사람의 입장에서는 그 능률이 떨어지지 않을까라는 의견이었습니다. 예를 들어 저번에는 이런 것을 조사하고 싶어서 프로토타입으로 제출했었는데, 시간이 지나니까 또는 조사를 하다 보니까 영 아니다 싶은 경우가 있을 수 있겠죠. 혹시 제가 프로토타입에 대해 잘못 이해하고 있을수도 있겠다는 생각이 드는군요. 지적해 주세요.
          밑에 자세한 설명이 있네요. 프로토타입 만들기를 하는 대상은 결과물에 한정되지 않고, '리허설'처럼 그 과정도 해당합니다.
         프로토타입을 만든다는 것은 말 그대로 '시제품'을 만드는 겁니다. 해당 작업을 완벽하게 하기 전에, 무언가 내가 올바르게 하는 일인건지 리허설, 혹은 실험용 간단한 모델을 만드는 작업을 이야기하죠. 건축으로 친다면 건물 만들기 전 모델을 만들고 선풍기 바람 돌려서 안무너지나 알아본다던지, 혹은 PDA 프로그램을 만들기 전에 PDA 종이 모형을 만들고 그 안에 스크린을 종이로 구성해본다던지 등을 예로 둘 수 있겠습니다.
         이미 ZP 는 프로토타입의 경험을 해본 사람이 있습니다. 바로 세미나 전 '리허설' 말이지요. 무언가 간단하게 해보고, 빨리 피드백을 얻어 개선점이나 더 즐거울 방법들을 찾아나가는 방법입니다. 그때의 느낌을 가지고 가볍고 빠르게 시작해보았으면 좋겠군요. --[1002]
  • EffectiveC++ . . . . 16 matches
         이런 혼란(?)을 피하기 위해선 배열 타입들에 대한 typedef를 피하면 되지뭐. ^^[[BR]]
         그리고, operator=연산자의 리턴형을 const로 정의 해 주었을때. 밑의 예제와 같은 멍청한(?) 연산을 해주었을때 적용 되지 않는다. 밑의 연산은 멍청한(?) 연산이지만 C++의 기본 타입에 대해 저런 연산이 가능하기 때문에 저런 연산도 지원하게 끔 만들어야 한다.
         결론을 얘기 하자면, 치환의 왼쪽 부분에 대한 레퍼런스 *this를 되돌려 주도록 치환 연산자를 선언해야 한다. 만일 이외의 일을 하면, 연속적인 치환을 할 수 없게 되고, 클래스를 사용하는 코드에서의 묵시적인 타입 변환도 할 수 없게 된다.[[BR]]
         3. 새로운 타입의 객체를 값에 의해 전달하는 것은 무엇을 의미 하는가?[[BR]]
         4. 새로운 타입의 객체가 상속 그래프에 맞는가?[[BR]]
         5. 어떤 종류의 타입 변환이 허용되는가?[[BR]]
         6. 어떤 연산자와 함수가 새로운 타입을 위해 적당한가?[[BR]]
          * '''비멤버 함수들만 그들의 가장 왼쪽편에 있는 인자에서 타입 변환이 일어난다.''' 만일 f가 가장 왼쪽편에 있는 인자에서 타입 변환을 필요로 한다면 f를 비멤버 함수로 만든다. 게다가 f가 C의 비공용 멤버에 접근이 필요하다면 f를 C의 프렌드로 만든다.
         === 항목 25. 포인터나 수치형 타입상의 오버로딩을 피한다. ===
         NULL이라는 상수에 대한 타입의 정의가 모호하다.
         하지만 이렇게 풀리지 않을 경우 dynamic_cast와 같은 방법으로 미리 타입을 체크한후 실행여부를 결정하도록 하자.
         템플릿은 객체의 타입이 클래스의 정의된 함수들의 동작 원리에 영향을 미치지 않는 경우에, 클래스의 모음을 생성하는 데 사용되어야 한다.
         계승은 객체의 타입이 클래스에 정의된 함수들의 동작 원리에 영향을 미치는 경우에, 클래스의 모음을 위해 사용되어야 한다.
         이렇게 객체가 아닌 포인터에 대한 스택이 있다고 할때. 이 클래스만으로는 타입이 안정하지 못하다.
         타입안정하고 GenericStack만으로는 생성할 수 없도록 막아놓았다.
  • AcceleratedC++/Chapter13 . . . . 15 matches
          === 13.2.1 객체의 타입을 모르는 상태에서 값을 얻기 ===
          만약 일반형의 변수로 virtual함수를 호출하면 객체가 항상 한가지 타입으로만 존재하기 때문에 정적바인딩이 된다. 그러나 포인터, 참조형의 경우 이렇게 할때에는 동적바인딩으로 동작하게 된다. 포인터의 형과 실제 포인터가 가리키는 데이터형이 다른일이 생기기 때문이다. 따라서 이 경우 virtual 멤버함수는 '''런타임에 동적으로 바인딩''' 된다.
          기본 타입에 대한 포인터나 레퍼런스가 필요한 곳에 파생 타입을 사용할 수 있다는 개념. 하나의 타입을 통해서 여러 함수들 중 하나를 선택하여 호출할 수 있다.
         단일프로그램을 작성하기위해서 타입 의존성을 제거해야할 부분
          === 13.3.1 알지 못하는(가상적으로) 타입에 대한 컨테이너 ===
          앞의 예에서처럼 vector<Core>의 컨테이너를 설정하게 되면 컨테이너 안에 저장되는 객체가 Core의 객체가 되므로 정적으로 바인딩된다. 이를 해결하기 위해서는 vector<Core*>를 통해서 객체를 동적으로 할당하고 관리하도록 하면, 서로 다른 타입의 객체를 저장하는 것도 가능하고 프로그램의 다른 부분에서 다형성의 이점을 이용하는 것도 가능하다.
          상기와 같은 구조에서는 students[i]의 타입이 Core* 이기 때문에 메모리 해제시에 Core버전의 소멸자가 호출되고 Grad 부분은 해제되지 않는다.
          소멸자 역시도 virtual 함수로 만들어서 대상 타입에 따라 다른 동작성을 보장하는 것이 가능하다.
          상기와 같이 빈 소멸자를 사용하는 것은 흔한 경우이다. 기본 타입의 소멸자를 virtual 로 만듦으로서 파생 클래스에서 발생하는 기타 요소들을 해제해야할 경우가 많기 때문이다.
          일반 멤버 함수와는 달리 그 클래스 타입의 객체에 대해 작업을 수행하는 것이 아니고, 클래스 안에서는 클래스 객체의 정적 데이터 멤버만을 다루는 것이 가능하다.
          우선은 첫번째 인자를 받아서 생성할 객체의 타입을 결정하고, 결정된 타입의 객체를 생성시킨다.
          만약 부모 클래스에 있는 메소드와 메소드 명은 갖지만 파라메터나 타입이 같이 않으면 메소드는 완전히 다른 함수로 인식되어 작동한다.
  • AcceleratedC++/Chapter8 . . . . 14 matches
         WikiPedia:Generic_function : 함수를 호출하기 전까지는 그 함수의 매개변수 타입이 무엇인지 알 수 없는 함수.
         WikiPedia:Generic_function : 함수의 호출시 인자 타입이나 리턴타입을 사용자가 알 수없다. ex)find(B,E,D)
          === 8.1.1 알려지지 않은 타입의 중앙 값 ===
          서로 다른 타입의 객체이라도 하더라도 각각의 객체를 가지고 행하는 행동양식은 공통의 행동양식을 갖는다.
          Runtime이 아니라 Compile 타임에 실제로 타입이 변화하는 객체를 적절히 작성하면 올바른 동작을 보장한다.
          실제 컴파일시 컴파일러는 프로그래머가 지정한 타입으로 이 함수를 인스턴스화 시켜서 생성하고 바인딩한다.
          typename 은 아직 인스턴스화 되지 않은 함수를 컴파일러가 읽어들일때 타입 매개변수와 관계된 타입의 형을 생성할때 앞에 붙여야 하는 키워드 임. ex) vector<T> or vector<T>::size_type
          === 8.1.3 제네릭 함수와 타입 ===
          실제 제네릭 함수의 사용에서 가장 문제시 되는 것은 함수내부의 연산을 매개변수 타입이 지원을 하는 가이다.
          인자로 받은 두 값의 타입이 완전히 같아야지만 올바른 동작을 보장받는다. 인자는 operator>(T, T)를 지원해야한다.
         C++의 모든 입출력 연산은 타입 지정연산이다. cin>>s.midterm>>s.final>>s.homework; 에서도 타입에 따라서 다른 일을 한다.
  • DevelopmentinWindows . . . . 13 matches
          * 윈도우즈 데이터 타입
         === 윈도우즈 데이터 타입 ===
          ||데이터 타입||의미||
          ||b 또는 f||BOOL 타입의 변수||
          ||by||BYTE 타입의 변수||
          ||ch||CHAR 타입의 변수||
          ||dbl||DOUBLE 타입의 변수||
          ||h||HANDLE 타입의 변수||
          ||n 또는 i||INT 타입의 변수||
          ||l||LONG 타입의 변수||
          ||u||UINT 타입의 변수||
          ||w||WORD 타입의 변수||
          ||dw||DWORD 타입의 변수||
  • OpenGL스터디 . . . . 13 matches
         === 데이터 타입 ===
          * openGL은 데이터타입을 내부적으로 정의 하고 내부에서 쓰고 있다. 이는 역시 일반적인 임플리먼테이션을 고수하기 위해서임은 당연한 사실이다.(각 환경마다 데이터 형식이 다르기 때문에 이를 모두수용하기 위해서는 자체적으로 정의한 데이터형식을 쓸 수 밖에 없다.)
          * 그리고 이 데이터타입은 openGL에 naming convention(이름 규칙)에 따라 정해져있는데 직관적이라 은근히 외우기 쉽다. 아래의 표를 살펴보자.
         || <openGL데이터 타입> || <설명> || <대응 c언어 데이터 타입> || <변수 접두어 규칙> ||
          * size 라는 단어가 들어간 타입은 길이나 깊이와 같은 값을 담는데 쓰이는 타입이라는 것을 나타낸다.
          * clamp라는 단어가 붙은 타입은 크기가 0.0에서 1.0사이로 범위가 제한되는 타입이라는 의미를 가진다.
          * bitfield는 눈치 채셧듯이 바이너리 비트필드 값에 대한 타입이다. 앞서 말한 openGL의 내부는 상태에 대한 기계상태의 변화로 이루어 진다고 했는데 이게 나중에 상태에 대한 묶음을 표현하고 상태묶음을 그때그때 편리하게 변화할때 쓰인다.
          * 규칙 : <라이브러리 이름><루트 명령어><(선택적) 인자의 수><(선택적)인자 타입>
          * ''참고사항 : openGl의 내부적인 데이터타입은 float을 사용하고 있기 때문에 왠만해서는 이 데이터 타입에 맞게 데이터를 전달해주는게 정확도 측면이나 전체적인 성능 향상의 측면에서 더 좋다.''
  • Refactoring/MakingMethodCallsSimpler . . . . 12 matches
         = Chapter 10 Making Method Calls Simpler =
         == Rename Method ==
         The name of a method does not reveal its purpose.
          ''Change the name of the method''
         http://zeropage.org/~reset/zb/data/RenameMethod.gif
         A method needs more information from its caller.
         A parameter is no longer used by the method body.
         You have a method that returns a value but also changes the state of an object.
          ''Create two methods, one for the query and one for the modification''
         == Parameterize Method ==
         Several methods do similar things but with different values contained in the method body.
          ''Create one method that uses a parameter for the different values''
         http://zeropage.org/~reset/zb/data/ParameterizeMethod.gif
         == Replace Paramter with Explicit Method ==
         You have a method that runs different code depending on the values of an enumerated parameter.
          ''Create a separate method for each value of the parameter''
         You are getting several values from an object and passing these values as parameters in a method call.
         == Replace Parameter with Method ==
         An object invokes a method, then passes the result as a parameter for a method. The receiver can also invoke this method.
          ''Remove the parameter and let the receiver invoke the method''
  • AcceleratedC++/Chapter11 . . . . 11 matches
         3장에서 작성한 Student_info 타입은 복사, 대입, 소멸시에 어떤 일이 수행되는지 명세되어있지 않음.
         //vector가 사용하는 타입의 이르을 얻는다.
          따라서 어떤 타입이 Vec에서 사용되는진는 정의부가 instiation 되기 전에는 알 수 없다.
          === 11.2.3 타입 정의 ===
          back_inserter(T)함수를 통해서 동적으로 크기를 변경시키기 위해서 '''value_type, push_back''' 타입을 정의함. (value_type 은 현재 저장된 요소가 어떤 타입인지를 알려줌)
          복사 생성자는 생성자의 이름은 기타 생성자와 같으나 인자로 자신이 호출된 객체의 타입을 갖는 생성자를 의미한다.
          함수의 인자를 복사하는 것을 포함해서, 복사본을 만든다는 의미를 정의하고 있기 때문에 매개변수를 레퍼런스 타입으로 하는 것이 좋다.
          * '''헤더파일에서의 리턴타입이 Vec& 로 사용되었음'''
          템플릿의 스코프 안에서는 타입 매개변수를 생략하는 식의 더 쉬운 표현을 사용할 수 있다.
         || construct, destroy || 할당된 메모리 공간에 적당한 데이터 타입을 초기화 시킨다. (공간은 allocate를 통해서 이미 할당된 공간이어야 한다.) ||
  • PNGFileFormat/FormatUnitTestInPythonLanguage . . . . 11 matches
          # CompressionMethod
          compressionMethod = ord(chunkInfo[2][10])
          # Filter Method
          filterMethod = ord(chunkInfo[2][11])
          # InterlaceMethod
          interlaceMethod = ord(chunkInfo[2][12])
          print '\nBitDepth, ColorType, CompressionMethod, FilterMethod = (%d, %d, %d, %d, %d)' \
          % (bitDepth, colorType, compressionMethod, filterMethod, interlaceMethod)
          def makeScanline(self, basepixel, ypos, stream, rgbmap): # method 는 PNG filter type, stream은 zlib 으로 decomposite된 값들
          method = ord(stream[idx])
          if method == 0:
          elif method == 1: # sub
          elif method == 2:
          elif method == 3:
          elif method == 4: #paeth
  • java/reflection . . . . 11 matches
          * classpath를 이용해 현재 프로젝트내의 class가 아닌 외부 패키지 class의 method를 호출하는 방법.
          public static void main(String[] args) throws MalformedURLException, ClassNotFoundException, InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException {
          Method[] declaredMethods = helloWorld.getDeclaredMethods();
          for (int i = 0; i < declaredMethods.length; i++) {
          Method declaredMethod = declaredMethods[i];
          System.out.println(declaredMethod.getName());
          Method sayHello = o.getClass().getMethod("sayHello", null);
  • 레밍즈프로젝트/프로토타입 . . . . 10 matches
         || 프레임 구성 || [레밍즈프로젝트/프로토타입/프레임구성] || O ||
         || 대화상자 || [레밍즈프로젝트/프로토타입/대화상자] || O ||
         || 에니메이션 버튼 || [레밍즈프로젝트/프로토타입/에니메이션버튼] || X ||
         [레밍즈프로젝트/그리기DC]가 가장 최신 클래스 이다. 아래는 테스트 타입 문서들.
         || MFC더블버퍼링 || [레밍즈프로젝트/프로토타입/MFC더블버퍼링] || O ||
         || 마스크이미지 || [레밍즈프로젝트/프로토타입/마스크이미지] || O ||
         || 비트별로 찍어보기 || [레밍즈프로젝트/프로토타입/SetBit] || O ||
         || 에니메이션 || [레밍즈프로젝트/프로토타입/에니메이션] || O ||
         || 파일스트림 || [레밍즈프로젝트/프로토타입/파일스트림] || O ||
         || STL/List || [레밍즈프로젝트/프로토타입/STLLIST] || O ||
  • AcceleratedC++/Chapter10 . . . . 9 matches
          포인터도 타입을 갖는데 일반적으로 type-name * 으로 정의한다.
          {{{~cpp int *p; // *p는 int 타입을 갖는다.
          while (begin != end && if f(*begin)) //여기서 Pred는 Pred(*begin)이 의미를 갖는 모든 타입이 가용합니다.
          표준 라이브러리가 아닌 기본언어의 일부로서 하나 이상의 같은 타입의 객체들로 이루어진 시퀀스입니다. 단 배열 요소의 갯수는 컴파일 시에 알 수 있어야합니다.
          배열은 클래스 타입이 아니기 때문에 배열의 크기를 나타내는 size_type과 같은 요소는 없습니다. 대신에 C Standard Definition 이하 '''<cstddef>''' 에 '''size_t'''로 지정된 unsigned 타입으로 배열의 크기를 사용해야합니다.
          <fstream>에서 사용하는 파일 이름은 char* 형이며, string 타입이 아니다. 이는 fstream library 가 만들어진 시기가 STL이 만들어진 시기 보다 앞서기 때문이다.
          객체의 타입을 T라고 가장하고, 메모리 상에 동적으로 할당하기 위해서는
          객체의 타입을 T, 갯수를 음이아닌 정수 n이라 가장하고, 메모리 상에 동적으로 할당하기 위해서는
  • AcceleratedC++/Chapter9 . . . . 8 matches
         || 기본 타입 || char, int, double 등 기본언어의 일부 ||
         || 클래스 타입 || string, vector, istream 등 기본언어를 가지고 구현된 타입 ||
         C++은 클래스 타입과 같은 사용자가 정의한 어플리케이션 고유의 타입을 정의할 수 있는 많은 기능은 지원한다.
          생성자는 클래스의 이름과 동일한 이름으로 함수의 이름을 갖는다. 또한 리턴타입이 없다.
          * 내장 타입 객체인 경우 값지정 초기화시에는 0으로 디폴트 초기화 시에는 정의되지 않은 값으로 세팅된다.
          * 생성자를 갖지 않는 타입인 경우. 객체를 어떤 식으로 초기화했는 가에 따라서 값지정, 디폴트 초기화를 재귀적으로 행함.
  • Refactoring/ComposingMethods . . . . 8 matches
         = Chapter 6 Composing Methods =
         == Extract Method p110 ==
          * You have a code fragment that can be grouped together.[[BR]]''Turn the fragment into a method whose name explains the purpose of the method.''
         == Inline Method p117 ==
          * A method's body is just as clear as its name. [[BR]] ''Put the method's body into the body of its callers and remove the method.''
         == Replace Method with Method Object p135 ==
          * You have a long method that uses local variagles in such a way that you cannot apply ''Extract Method(110)''. [[BR]]
         ''Turn the method into ints own object so that all the local variagles become fields on that object. You can then decompose the method into other methods on the same object.''
         http://zeropage.org/~reset/zb/data/ReplaceMethodWithMethodObject.gif
          * You want to replace an altorithm with one that is clearer. [[BR]] ''Replace the body of the method with the new altorithm.''
  • TestDrivenDevelopmentByExample/xUnitExample . . . . 8 matches
          method = getattr( self, self.name )
          method()
          def testMethod(self):
          self.log += "testMethod "
          def testBrokenMethod(self):
          self.test = WasRun("testMethod")
          def testTemplateMethod(self):
          assert "setUp testMethod tearDown " == self.test.log
          self.test = WasRun("testBrokenMethod")
         TestCaseTest("testTemplateMethod").run()
  • 강소현 . . . . 8 matches
         스트레스 폭발형 타입
         주위의 잡음에 지나치게 신경을 써서 하루라도 마음 편할 날이 없는 타입입니다. 이른바 과민성 성격이라 불리는 부류의 사람으로 스스로에게 도저히 자신을 갖지 못합니다. 항상 소극적이고 지나치게 자상한데다 매사의 대처가 엉성해 주위사람들로부터는 점점 이용만 당하고 결국 손에 남는 것은 찌꺼기뿐입니다. '지’, '정’, '의’의 불균형이 심해 사회의 작은 풍파에도 크게 흔들리고 덧없는 세상의 뒷길을 비틀대며 걸어갈 수밖에 없습니다. 이런 타입에게 가장 요구되는 것은 모든 일을 나누어 생각하는 습관입니다. 그리고 다른 한 가지는 눈을 딱 감고 자기주장을 관철시켜버리는 오기입니다. 필요할 때는 정색도 할줄 알아야 앞으로 더 큰 시야를 얻을 수 있습니다.
         ▷ 대인관계 (상대방이 이 타입일 경우 어떻게 하연 좋을까?)
         동료, 부하직원 - 소심한 상대이기 때문에 당신이 다가가 능력을 이끌어 내주어야 합니다. 천천히 일하는 타입이기 때문에 일을 재촉하면 과열되어 폭발할 위험이 있습니다.
          * 나도 해봤는데.. 난 BBBBA 자기비하타입이네... -[서지혜]
          * 난 이거 예전에 해봤을때 ABABC 일귀신 타입 나왔었어.. - [김수경]
          * ABBAB 자의식이 지나친 나의 황금기 타입.. 대부분 답이 그렇다 혹은 중간쯤임.. - [송지원]
  • AcceleratedC++/Chapter12 . . . . 7 matches
         상기의 클래스에는 Str(const char*) 타입의 생성자가 존재하기 때문에 이 생성자가 Str 임시 객체를 생성해서 마치 '''사용자 정의 변환(user-define conversion)'''처럼 동작한다.
          === 12.3.4 혼합-타입 표현식(Mixed-type expression) ===
         클래스의 제작자들은 명시적으로 '''변환 연산자(conversion operator)'''를 정의하여 그 객체의 타입이 목적인 객체의 타입으로 변환하는 것을 정하는 것이 가능하다.
         변환 연산자의 모양은 '''operator 목적이 되는 타입의 이름'''으로 정의된다.
         void* 타입의 포인터는 어떤 객체라도 가리킬 수 있는 포인터 이므로 '''유니버셜 포인터(universal point)'''라고 부른다. 그러나 그러나 포인털르 역참조하는 것은 불가능하다. 그러나 bool 타입으로의 변환은 가능하다.
  • DesignPatterns/2011년스터디/1학기 . . . . 7 matches
          1. Factory Method와 Template Method 방법에대해 나쁜점을 설명하는데 Swing이 나오니까 다시 화난다. 난 Swing디자인이 싫어!!
          1. Factory Method, Abstract Factory Method, Template Method, Command, Strategy의 비교를 통해 상속구현의 비효율성에 대해 느꼇다.
          1. 지난주에 헷갈렸던 Factory Method 패턴에 대해 이해할 수 있게 됐다.
          1. Factory Method 패턴은 상속을 통해 바뀌는 부분을 오버라이딩하여 구현
  • JavaScript/2011년스터디 . . . . 7 matches
          * 프로토타입 기반 객체지향 프로그래밍 언어로서의 자바스크립트
          * [박정근] - javascript에 관한 전반적인 내용들을 배웠습니다. 지난 시간동안 javascript를 공부하면서 배웠던 내용들을 정리하는시간이 되었던것 같습니다. 게다가 이론으로는 알고잇던 프로토타입같은 내용은 실제로 구글개발자 툴의 콘솔을 이용하여 직접 보면서 설명을 들으니 확실히 이해되기도 하였구요ㅋ 관심가는 부분에는 함수형 선언적 프로그래밍인데 함수형 언어를 사용한 적이 없어서 그런 방식으로 프로그래밍 하는 것에 대해 신선함을 느끼고 더 알고 싶어졌습니다. 또 자바스크립트를 하면서 DOM에 관해서도 알아야 겠다는 생각이 들었습니다. 하아.. 공부할게 많네요ㅋ
          * [정진경] - 약 3시간 넘게 특강을 들었습니다.프로토타입에 대해서는 처음 접해본거 같은데 익숙치가 않아서 개념 이해가 버거운 것 같기도 하고-_-;깔짝깔짝 써본 자바스크립트가 이렇게 심오한 언어일 줄은 몰랐습니다. 더글락스 어쩌구 아저씨의 책을 정독해봐야 겠네요. 그전에 기초부터 다져야 하겠지만, 오늘 배운 부분들이 꽤 많은 핵심들을 짚었다고 생각합니다.하지만 자바스크립트로 원하는 기능을 다 구현해보더라도 오늘 배운 것들을 응용할만한 끈기가 저한테 있을지는.. 모르겠습니다;;
          * [김광순] - javascript에 관해 특강을 들었습니다. 기초가 부족해서 이해하기 힘든 부분이 많았습니다.(특히 프로토타입쪽이...)
         2. 테이블에 컬럼타입 변경하기
         alter table tablename modify column [변경할 컬럼명] [변경할 컬럼 타입]
         alter table tablename change column [기존 컬럼명] [변경할 컬럼명] [변경할 컬럼타입]
  • Spring/탐험스터디/wiki만들기 . . . . 7 matches
          * RequestMappingHandlerMapping의 매핑 테이블을 보니 {[ URL ], methods=[ Method 타입 ], params=[],headers=[],consumes=[],produces=[],custom=[]}등으로 Request를 구분하고 있었다.
          * 이를 이용해 RequestMapping의 value값, Method 타입이 같아도 특정 파라메터의 유무로 리퀘스트 핸들링을 달리할 수 있다.
          * 예를들어 ''@RequestMapping(value = "/helloworld", method = RequestMethod.GET)''와 ''@RequestMapping(value = "/helloworld", method = RequestMethod.GET, params="param=param")''은 다르다. 각각 다른 함수에 mapping될 수 있다.
          * RequestMapping의 method 타입을 이용해 signup 페이지 호출과 실제 signup을 구분하여 핸들링
  • XMLStudy_2002/Start . . . . 7 matches
          *type : 사용할 스타일 시트의 타입을 기술 XSL(text/xsl)과 CSS(text/css)가 있음
          *엘리먼트 타입선언 : 엘리먼트의 타입을 DTD에 선언함
          *엘리먼트 타입 선언 예
          *디폴트 타입
         엘리먼트를 사용할 때 FIXED로 타입이 지정된 경우에 선언된 디폴트 값과 다른 값을 어트리 뷰트의 값으로 사용할수 없을을 의미함
         id 어트리뷰트의 타입은 ID이고 이 어트리뷰트는 반드시 사용해 주어야 하는 것으로 선언되었다. 그리고 reply_required 라는 어트리뷰트는 이 어트리뷰트의 값으로는 "yes"와"no"만 사용될수 있으며 만약 어트리뷰트가 명시되지 않았을 경우에는 디퐅르 값으로 "yes"를 사용한다.
         form이라는 엘리먼트의 method라는 어트리뷰트 선언으로 어트리뷰트의 값은 항상 "POST"이어야함
         <!ATTLIST form method CDATA #FIXED "POST">
  • 만세삼창VS디아더스1차전 . . . . 7 matches
          FatalException은 타입이름이라구 그냥 만들면 되는거야
          내 엄어엔 FatilException 이라는 타입은 없다
          바보 언어 에 있든 없든 먼상관이냐. 혹시 니 언 는 사용자 정의 타입이 없는거 아니냐 후진 것 같으니라고
          넌 타입을 선언안했다
          선언도 안한 타입을 ㅡ.ㅡ;
          내 언언에 있는 built-in 타입이다
          타입도 정의 안되있고
  • 새싹교실/2012/주먹밥 . . . . 7 matches
          * 변수타입 - C언어는 고급언어이다. 왜냐. 사람이 쓰기 좋게 만들기때문이다. 편하게 만들어주는 것중 하나가 변수 타입이다. int는 정수, char는 문자, float는 실수. 참 편하지 않은가? 사람을 위해 만들어진것이다. 언제까지 0과 1로 대화할텐가?
          * 포인터 : 포인터변수는 32bit 버전 컴파일러에서 4byte 64bit 버전 컴파일러에서 8byte의 크기를 가집니다. 어떤타입이든 말이죠 (void *), (int *), (float *) 모두 말이에요. int *a는 4byte를 할당받고 a에는 '''주소값(address)'''을 가지게 됩니다. 포인터 (*)를 붙이게 되면 그 해당 주소가 가르키는 '''값'''을 찾아가게 되죠. int형 값말이에요 그러니까 4byte만 찾아오겠죠?
          * 배열(array)는 같은 타입을 한꺼번에 관리하게 해줍니다 {{{ int a[10];}}}이라하면 a는 int형 10개가 생겨있고 0~9까지의 인덱스(index)를 지니죠.
          * 구조체는 사용자가 타입을 정의해서 변수처럼 쓸수 있게 만들어주는것 입니다!
          * typedef는 {{{typedef 정의할것 이름;}}} 형식으로 정의하여 진짜 타입처럼 간단하게 쓰는겁니다.
         이름과 실수형 값을 가진 CALORIE라는 타입을 만든 예제
  • HolubOnPatterns/밑줄긋기 . . . . 6 matches
          * 이러한 착각은 흔히 C를 배우고 C++을 배울 때, '객체'가 아닌 문법 클래스'를 쉽게 설명하려고 "클래스는 structure(data) + method(to do) 이다." 라는 요상한 설명을 접하게 되면 하게 되는 것 같습니다. 처음에 이런 설명을 접하게 되면 나중에는 생각을 바꾸기 어려워지죠 (아니 귀찮아지는 건가...) -_-;; - [박성현]
          * 좋은 클래스는 getter와 setter메소드를 갖지 않는데, 이런 메소드는 구현 상세를 노출시키기 때문에 결과적으로 유지 보수를 어렵게 만들기 때문이다. 예를 들어 getter 메소드의 리턴 타입이 바뀌게 되면 getter를 정의하는 객체뿐 아니라 'getter'를 호출하는 모든 코드 또한 바꾸어 주어야 한다. 잠시 후에 getter와 setter 메소드 없이 시스템을 디자인하는 방법에 대해 설명할 것이다. 기대해도 좋다.
         ==== Template method와 Factory Method 패턴 ====
          * Factory Method 패턴은 좋은 선택이 아니었다. 이번 장의 뒤에서 살펴볼 Strategy 패턴 등은 Factory Method 패턴의 멋진 대안이 된다.
          * Abstract Factory의 모든 실체화에서 공통되는 주제는 팩토리를 사용하여 정확한 타입을 모르는 객체를 생성한다는 것이다.
          * 사실 거의 대부분의 상황에서 Strategy는 Factory Method의 좋은 대안이 된다.
  • LearningGuideToDesignPatterns . . . . 6 matches
         === Factory Method - Creational ===
         FactoryMethodPattern 로 시작하라. 이 패턴은 다른 패턴들에 전반적으로 사용된다.
         === Template Method - Behavioral ===
         앞에서의 IteratorPattern 의 예제코드에서의 "Traverse" 는 TemplateMethodPattern 의 예이다. 이 패턴은 StrategyPattern 과 FactoryMethodPattern 를 보충해준다.
         AbstractFactoryPattern은 두번째로 쉬운 creational Pattern이다. 이 패턴은 또한 FactoryMethodPattern를 보강하는데 도움을 준다.
  • MySQL . . . . 6 matches
         MySQL에서 한글이 들어간 문자열을 제대로 정렬하려면 char 타입이 아닌 char binary 타입을 쓰면 됩니다. 하지만 이미 char 타입으로 되어있다면 ORDER BY BINARY 필드명 을 사용하면 됩니다. MySQL에서 char 타입은 순수한 아스키(0~127) 값에서만 제대로 동작합니다. 물론 char 타입을 쓴다고 해서 한글이 저장되지 않거나 하는건 아니지만, 검색이나 정렬등에서 제대로 작동하지 않는 경우가 있습니다. --["상규"]
         | name | char(10) | | | | | <-- name 이 char 타입입니다.
  • Refactoring/DealingWithGeneralization . . . . 6 matches
         == Pull Up Method ==
          * You have methods with identical results on subclasses.[[BR]]''Move them to the superclass''
         http://zeropage.org/~reset/zb/data/PullUpMethod.gif
          * You have constructors on subclasses with mostly identical bodies.[[BR]]''Create a superclass constructor; class this from the subclass methods.''
         == Push Down Method ==
         http://zeropage.org/~reset/zb/data/PushDownMethod.gif
         == Form Template Method ==
          * You have two methods in subclasses that perform similar steps in the same order, yet the steps are different.[[BR]]''Get the steps into methods with the same signature, so that the original methods become the same. Then you call pull them up.''
         http://zeropage.org/~reset/zb/data/FormTemplateMethod.gif
          * A subclass uses only part of a superclasses interface or does not want to inherit data.[[BR]]''Create a field for the superclass, adjust methods to delegate to the superclass, and remove the subclassing.''
  • WOWAddOn/2011년프로젝트/초성퀴즈 . . . . 6 matches
         처음에 문제가 생겼었는데 Eclipse에서 테스트하던 string.find(msg,"시작")이 WOW에서 글씨가 깨지며 정상 작동하지 않았다. 그 이유는 무엇이냐 하면 WOW Addon폴더에서 lua파일을 작업할때 메모장을 열고 작업했었는데 메모장의 기본 글자 Encoding타입은 윈도우에서 ANSI이다. 그렇기 때문에 WOW에서 쓰는 UTF-8과는 매칭이 안되는것! 따라서 메모장에서 새로 저장 -> 저장 버튼 밑에 Encoding타입을 UTF-8로 해주면 정상작동 한다. 이래저래 힘들게 한다.
         Frame 타입에 따라 생성되는게 달라진다 "EditBox","Button"등 UIObject를 String 타입으로 넣어 설정해주면 타입이 결정된다
         이름을 주면 된다 String타입.
  • 새싹교실/2012/AClass/1회차 . . . . 6 matches
          변수형 (변수의 데이터 타입을 선언해 준다.int, float)
         -char형(문자를 저장할 때 써주는 데이터 타입)
         3.함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요.
         3. 함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요.
         3.함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요.
          - void타입은 리턴 할 값이 없을 때 사용하기 때문이다.
  • 정모/2012.3.12 . . . . 6 matches
          * 전시회 홍보, 동아리 방 설명에 이어서 OMS가 상당히 인상 깊었던 정모였습니다. 제목만 보고도 그 주제를 고르신 이유를 바로 알았습니다. 전체적으로 Type, Type Safety, Java Generics에 대해서 상당히 깊이 다루지 않았나 싶네요. 사실 제네릭스 모양이 C++의 템플릿과 비슷하게 생겨서 같은 것이라고 생각하고 있었는데 이건 확실히 '만들어진 이유가 다르다'고 할 만 하군요. 그리고 마지막에 이야기했던 Type Erasure는 제네릭스를 구현할 때 JVM 레벨에서 구현하지 않고 컴파일러 부분에서 처리를 하도록 했기 때문에 타입이 지워지는 거라는 얘기를 들었는데 맞는지 모르겠군요. 이거 때문에 제네릭스 마음에 안 들어하는 사람들도 있는 모양이던데. 중간에 이 부분에 대한 개선이 이루어지고 있다는 말씀을 잠깐 하셨는데 컴파일 이후에도 타입 정보가 사라지지 않도록 스펙을 수정하고 있는 건가요? 좀 궁금하군요. 여담이지만 이번에 꽤 인상깊게 들었던 부분은 예상외로 Data Type에 대한 부분이었습니다. 이걸 제가 1학년 여름방학 때 C++ 스터디를 한다고 수경 선배한테 들은 기억이 지금도 나는데, 그 때는 Type이 가능한 연산을 정의한다는 말이 무슨 뜻인지 이해를 못 했었죠 -_-;;; 이 부분은 아마 새내기들을 대상으로 새싹을 할 때 말해줘야 할 필요가 있지 않을까 싶습니다. 아마 당장은 이해하지 못 하겠지만. 후후 - [서민관]
          * 아... Generics쪽의 개선이었군요 ;;; 타입 추론을 넣는 건가요. 컴파일러단에서 타입을 다 체크했으니 추측해서 넣을 수도 있다는 얘기였나... 그럼 타입 추론은 javac에서 이루어지는 건가요? 그렇다면 C++의 auto 키워드랑 같은 방식으로 작동한다는 얘기인가? 아마 힌들리-밀너 뭔가 하는 걸로 타입을 추측하는 것 같던데 쓰기는 좀 더 편해지겠네요. - [서민관]
  • 진격의안드로이드&Java . . . . 6 matches
          public void methodOperandStack(){
          1: invokespecial #1 // Method java/lang/Object."<init>":()V
          9: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
          public void methodOperandStack();
          public void methodOperandStack(){
          1: invokespecial #1 // Method java/lang/Object."<init>":()V
          9: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
          public void methodOperandStack();
          private final void methodOperandStack(){
          1: invokespecial #1 // Method java/lang/Object."<init>":()V
          9: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
  • AcceleratedC++/Chapter1 . . . . 5 matches
         interface : 객체의 타입으로 묵시적으로 내포 되어 있는 것은 인터페이스로서, 해당 타입의 객체에 사용 가능한 연산(operation)들의 집합을 말합니다. name을 string 타입의 변수(이름 있는 객체)로 정의 하게 되며, 우리는 string으로 할 수 있는 모든 일들을 name으로 하고 싶다는 뜻을 묵시적으로 내포하게 됩니다.
         초기화, end-of-file, buffer, flush, overload, const, associativity(결합방식), 멤버함수, 기본 내장 타입, 기본타입(built-in type)
  • BigBang . . . . 5 matches
          * void pointer 사용 자제합시다. void pointer가 가리키는 값의 타입을 추론할 수 없다. [http://stackoverflow.com/questions/1718412/find-out-type-of-c-void-pointer 참고]
          va_arg(ap, 인수타입); -> 가변 인수를 읽는 명령
          * 선언(Declaration) - 어떤 대상의 이름과 타입을 컴파일러에게 알려 주는 것
          * 복사 생성자 - 어떤 객체의 초기화를 위해 그와 같은 타입의 객체로부터 초기화할 때 호출되는 함수.
          * 복사 대입 연산자 - 같은 타입의 다른 객체에 어떤 객체의 값을 복사하는 용도로 쓰이는 함수이다.
  • MFC/CollectionClass . . . . 5 matches
          첫번째 타입 인자는 저장될 요소의 타입을 말하며, 두번째 인자는 멤버함수가 사용하게될 인자를 말한다.
          첫번째 타입 인자는 저장될 요소의 타입을 말하며, 두번째 인자는 멤버함수가 사용하게될 인자를 말한다.
          두번ㅤㅉㅒㅤ 인자로쓰이는 참조형은 포인터형이나 일반 객체 타입으로 바꾸는 것도 가능하며, 이것은 프로그래머의 의도에 따라 다르다.
  • html5/form . . . . 5 matches
          * search 타입, 전화번호 입력을 위한 tel 타입, 리소스 주소 입력을 위한 url 타입, 이메일 입력을 위한 email 타입, 색상 입력을 위한 color 타입 등이 새로 추가
          <input type="submit" formmethod="POST" formaction="/formOk.html">
          * {{{<form novalidate action="demo_form.asp" method="get">}}}
  • 간단한C언어문제 . . . . 5 matches
         옳지않다. atof함수로 float변환은 되었지만, atof함수의 프로토 타입이 있는 헤더를 추가하지 않았기 때문에 int형으로 return된다. 즉, num엔 숫자 123이 담긴다. ANSI C99에서는 프로토타입이 선언되지 않으면 컴파일되지 않도록 변했다. - [이영호]
         옳지않다. 함수의 프로토 타입이 정의되지 않았기 때문에 return형이 int형으로 바뀐다. 프로토타입은 return 타입을 컴파일러에서 알기 위해 쓰이는 것이다. - [이영호]
  • 토비의스프링3/오브젝트와의존관계 . . . . 5 matches
         || 필드명 || 타입 || 설정 ||
          * 1. 애플리케이션 컨텍스트는 ApplicationContext타입의 오브젝트다. 사용시 @Configuration이 붙은 자바코드를 설정정보로 사용하려면 AnnotationConfigApplicationContext에 생성자 파라미터로 @Configuration이 붙은 클래스를 넣어준다.
          getBean()메소드 : ApplicationContext가 관리하는 오브젝트를 요청하는 메소드. ""안에 들어가는 것은 ApplicationContext에 등록된 빈의 이름. 빈을 가져온다는 것은 메소드를 호출해서 결과를 가져온다고 생각하면 된다. 위에서는 userDao()라는 메소드에 붙였기 때문에 ""안에 userDao가 들어갔다. 메소드의 이름이 myUserDao()라면 "myUserDao"가 된다. 기본적으로 Object타입으로 리턴하게 되어있어서 다시 캐스팅을 해줘야 하지만 자바 5 이상의 제네릭 메소드 방식을 사용해 두 번째 파라미터에 리턴 타입을 주면 캐스팅을 하지 않아도 된다.
          * 스코프(scope) : 스프링이 관리하는 빈이 생성되고 존재하고 적용되는 범위. 빈의 기본 스코프는 싱글톤으로 컨테이너 내에 한 개의 오브젝트만 만들어져서 강제로 제거하지 않는 한 계속 유지된다. 경우에 따라서 싱글톤 외의 프로토타입(prototype), 요청(request), 세션(session)스코프 등을 가질 수 있다.
  • 프로그래머의길 . . . . 5 matches
         그렇다면 어떤 시점에 코드를 버려햐 하는가? 필자는 크게 두 가지 시점에 대해 논하고자 한다. 첫번째 시점은 프로젝트를 진행하고 있는 과정에서 발생한다. 정확하게 표현하면, 새로운 기능의 가능성을 타진해 보는 프로토타입 프로그램을 완성한 시점이 된다. 소프트웨어 공학에서 설계의 중요성을 강조하기 위해 객체지향이라는 패러다임을 만들 만큼 코딩이전의 설계 단계를 강조하고 있다 물론 잘 작성된 프로그램 설계는 프로토타입이라는 중간 프로그램 생성이 필요 없이 설계 명세서에 의한 코딩만 하면 완벽한 응용 프로그램을 개발할 수 있다.
         하지만 필자의 경험에 미뤄보면 이러한 경우는 업무 자동화와 같은 특정한 형식이 있는 응용 프로그램에 적용된다. 만약 프로젝트 설계자가 경험이 없는 응용 프로그램을 만들어야 한다는 가정을 두면 상황은 반전된다. 즉 설계자의 미경험에 의한 시행착오가 발생하는 것이다. 이러한 시행착오를 줄이는 방법이 새로운 기술에 대한 프로토타입의 개발이기는 하지만, 프로토타입으로 끝나야 한다. 하지만 우리의 실정은 아직까지도 프로토타입을 완성된 프로그램으로 생각하고 있는 경향이 지배적인것 같다.
  • ComposedMethod . . . . 4 matches
         === Composed Method ===
         당신이 가장 중요하게 Composed Method를 쓸때는, 당신이 뭔가를 구현하고 있을때 새로운 책임을 발견했을때이다. 당신이 둘 이상의 메세지를 다른 객체로 보낼때, 수신 객체에서는 그 메세지들을 합치는 Composed Method를 만들 수 있다. 이러한 Method들은 당신의 시스템의 다른 부분에서도 유용하게 쓰일 것이다.
  • InWonderland . . . . 4 matches
         [WebMethod(Description="앨리스 가맹점 인증")]
         [WebMethod(Description="포인트 조회")]
         [WebMethod(Description="포인트 적립")]
         [WebMethod(Description="포인트 사용")]
  • JavaStudy2004/오버로딩과오버라이딩 . . . . 4 matches
          함수를 재정의 할 때는 기반 클래스에 만들어져 있는 함수와 파생 클래스에서 재정의한 함수의 함수명과 매개변수의 타입이 완전히 같아서 서로 구별할 수 없어야 한다. 만약, 재정의 하려고 함수를 만들었는데 이것이 기반 클래스에 있는 함수와 매개변수의 타입이 조금이라도 다르면, 이것은 재정의가 아니라 오버로딩으로 간주된다.
          위에서 말한 People클래스의 move함수를 예를 들어보겠다. 위의 move함수는 정수형 인자를 매개변수로 받아들인다. 만약 people.move(1.1, 2.13)라는 명령어를 실행한다면 매개변수의 타입이 다르다는 에러가 발생할 것이다. 더블 형의 인자를 받아들이기 위해 move함수를 Overloading한다. move(double aX, double aY){this.position.x += (int)aX;this.position.y += (int)aY;} 두 함수 다 유효한 함수로 사용된다. 두 함수 중 어떤 함수가 호출될 것인지는 매개변수 값에 의해서 결정된다. 즉 오버로딩 된 함수들은 반드시 매개변수의 타입이 달라 서로 구별될 수 있어야 한다.
  • OurMajorLangIsCAndCPlusPlus/errno.h . . . . 4 matches
         ||19||int ENODEV||디바이스의 특별한 정렬을 하는 함수에 주어진 디바이스가 잘못된 타입이다.||
         || ||int EPROTOTYPE||그 소켓 타입이 요청된 통신 프로토콜에서 지원하지 않는다.||
         || ||int ESOCKTNOSUPPORT||그 소켓타입을 지원하지 않는다.||
         || ||int EOPNOTSUPP||당신이 요청한 그 오퍼레이션을 지원하지 않는다. 어떤 소켓함수는 소켓의 모든 타입들에서 이해할 수 없고 다른것들은 모든 통신 프로토콜을 충족시키지 못할 것이다.||
  • PatternCatalog . . . . 4 matches
          * ["FactoryMethodPattern"]
          * ["Gof/FactoryMethod"]
          * ["TemplateMethodPattern"]
          * ["Gof/TemplateMethod"]
  • 레밍즈프로젝트/일정 . . . . 4 matches
         || 11/14 || 프로토타입 검토, 보고서 작성. PPT 작성 || . ||
         || 11/13 || [레밍즈프로젝트/프로토타입] 작성 및 검토 ||
         || 11/14 || 프로토타입, 클래스, 시퀸스 다이어그램, 일정 To FTP ||
         || 11/16 || 에니메이션 프로토 타입(이승한) ||
  • 새싹교실/2011/무전취식/레벨4 . . . . 4 matches
          * 함수선언시 출력 타입(Return Type)에 따라 마지막에 반환해주는값 또한 같은 Type으로 반환해주어야합니다.
          int sum(int x, int y){ <<-- 입력 파라매터는 int타입 x와 y.
          return x+y; <- return 타입은 x+y의 결과 타입인 int;
  • 코바용어정리 . . . . 4 matches
         의 인터페이스 타입에 대해 스텁에 대한 프로그래밍 인터페이스를 필요로 한다. 보통 스텁은 OMG-IDL로 정의되어 있는 객체 오퍼레이션에 대한 액세를 하게 해주는데, 일단 프로그래머가 OMG-IDL 및 특정 프로그래밍 언어에 대한 언어 매핑에 친숙해지면 손쉽게 예상이 가능한 방식으로 액세르를 하게 해준다. 해당 스텁은 ORB 코어에 전용이며 최적화된 인터페이스를 사용해서 나머지 ORB들을 호출하게 될 것이다. 만약 여러 개의 ORB를 사용하게 된다면 각각의 스텁은 제 각기 해당하는 ORB를 호출하게 될 것이다. 이 경우에 ORB와 언어 맵핑은 공조하여 각각의 스텁이 특정 객체 레퍼런스와 제대로 연결될 수 있도록 해야 할 것이다.
         클라이언트가 호출될 객체와 수행할 오퍼레이션을 지정하고자 할 때, 특정 객체 A의 특정 오퍼레이션을 지정하는 대신 객체 호출을 동적으로 생성하도록 허용하는 인터페이스를 이용할 수 있다. 이러한 경우 클라이언트 코드에서는 수행되는 오퍼레이션과 전달되는 파라미터의 타입에 대한 정보를 제공해야 한다. 이 정보는 대개 인터페이스 저장소와 같은 런타입 소스에서 얻어진다. 실행 시간 중에 해당 정보를 얻은 후, 클라이언트 코드는 이른바 동적 호출 인터페이스(DII)를 이용해서 동적으로 호출을 할 수 있게 된다.
         각각의 언어 매핑에 대해(아마도 객체 어댑터에의 의존하게 되겠지만) 각각의 타입의 객체를 구현하도록 해주는 메소드에 대한 인터페이스가 존재할 것이다. 이 인터페이스는 일반적으로 업콜(up-call) 인터페이스일 것이다. 구현 객체의 개발자는 그 인터페이스에 따라 루틴을 작성하게 되고 ORB는 스켈레톤을 통해서 그 루틴을 호출하게 될 것이다. 그러나 스켈레톤의 존재가 그에 사응하는 클라이언트 스텁의 조재를 의미하지는 않는다는 것이다. 이말은 클라이언트가 DII를 통해서 리퀘스트를 만들 수도 있다는 것이다. 또한, 어떤 언어 맵핑은 스켈레톤을 사용하지 않는데, 이것은 Smalltalk에시는 대체적으로 맞는 말이다.
  • 1002/Journal . . . . 3 matches
         구조를 살피면서 리팩토링, KeywordGenerator 클래스와 HttpSpider 등의 클래스들을 삭제했다. 테스트 96개는 아직 잘 돌아가는중. 리팩토링중 inline class 나 inline method , extract method 나 extract class 를 할때, 일단 해당 소스를 복사해서 새 클래스를 만들거나 메소드를 만들고, 이를 이용한뒤, 기존의 메소드들은 Find Usage 기능을 이용하면서 이용하는 부분이 없을때까지 replace 하는 식으로 했는데, 테스트 코드도 계속 녹색바를 유지하면서, 작은 리듬을 유지할 수 있어서 기분이 좋았다.
         Refactoring Catalog 정독. 왜 리팩토링 책의 절반이 리팩토링의 절차인지에 대해 혼자서 감동중.; 왜 Extract Method 를 할때 '메소드를 새로 만든다' 가 먼저인지. Extract Class 를 할때 '새 클래스를 정의한다'가 먼저인지. (절대로 '소스 일부를 잘라낸다'나 '소스 일부를 comment out 한다' 가 먼저가 아니라는 것.)
         factory method를 사용해라.
         http://www.utdallas.edu/~chung/patterns/conceptual_integrity.doc - Design Patterns as a Path to Conceptual Integrity 라는 글과 그 글과 관련, Design Patterns As Litmus Paper To Test The Strength Of Object Oriented Methods 라는 글을 보게 되었는데, http://www.econ.kuleuven.ac.be/tew/academic/infosys/Members/Snoeck/litmus2.ps 이다. 디자인패턴의 생성성과 관련, RDD 와 EDD 가 언급이 되는 듯 하다.
          * Simple Design 에 대해서 내가 잘못 생각한 것 같다. Up-Front Design 자체를 구체적으로 들어갔을때 얼마나 복잡할 수 있는지도 모르면서 처음부터 Simple Design 을 논할수 있을까 하는 생각도 해본다. 생각해보니, 여태껏 내가 그린 전체 UML Class Design 은 거의 다 Simple Design 이겠군. -_-; (Interface 들 Method 이름도 결정 안했으니까.)
  • 2dInDirect3d/Chapter1 . . . . 3 matches
          2. 호환성 있는 IDirect3D8 객체를 검사한 후, 적정한 디바이스 타입을 고른다.
          디바이스의 타입을 얻어온다.
          만들 수 있는 디바이스의 타입은 세 가지가 있다. (2번째 인자의 값으로 사용한다.)
  • AcceleratedC++/Chapter14 . . . . 3 matches
         13장에서 문제를 해결하기위해서는 서로 다른 타입의 객체를 한개의 컬렉션에 젖하는 방법이 필요했다.
          === 14.4.1 제어할 수 없는 타입 복사하기 ===
          template<>를 사용하면 특정 인자 타입에 대한 특정 템플릿 함수의 버전을 정의한다.
  • AdvancedJS . . . . 3 matches
          * 혼자공부하는 것보다 세미나를 통해 더 효율적으로 공부할 수 있던것같다. 다른 언어와 달리 자유로워서 프로토타입 이해가 힘들었지만 책을 보며 다시 공부해보면 이해가 더 잘 될것같다 - [서지혜]
          * 개인적으로 자바스크립트에 관심도 있고 해서 세미나를 들으러 왔다. 근데 가끔 웹페이지에서 자바스크립트 소스를 보면 C++이랑 비슷하게 쓰길래 그냥 비슷한 언어인가 싶었는데, 이번에 들어보면서 오히려 다른 점이 크게 부각된 느낌이다. C++이랑 비교해서 상속 방식도 다르고(프로토타입 상속) this의 개념도 좀 다르고 함수가 객체로 취급되고 등등. 물론 나중에 따로 책을 보면서 공부를 하긴 하겠지만 아마 이번에 배운 내용은 책에서 쉽게 찾아볼 수 없지 않을까 싶다. - [서민관]
          * 도중에 참가했지만 다른것보다도 프로토타입(체인포함)에 관해서 좀 더 배울 수 있어서 좋았다. - [김홍기]
  • CollectionParameter . . . . 3 matches
         ComposedMethod의 단점중 하나는, 작은 메소드들 사이의 연관때문이다. 큰 메소드 하나에서 공유되었던 임시 변수들이, 이제는 작은 메소드들 사이에 공유된다. 가장 해결하기 쉬운 방법은 ComposedMethod를 없애고 다시 하나의 큰 메소드에 다 때려넣는 것이지만, 안좋다. 또 다른 해결책으로는 이 작은 메소드들 사이에서 공유되는 임시 변수를 멤버변수에 넣는 것이다. 이것은 객체의 생명기간 동안 유효한게 아니라, 저 메소드들이 실행될때에만 유효하다. 역시 안좋다.
         ComposedMethod를 적용해보자.
  • ConstructorMethod . . . . 3 matches
         === Constructor Method ===
         그래서 Constructor Method를 쓰기를 권한다. 즉 인스턴스를 똑바로 만들어주는 각각의 메소드를 추가해주는 것이다.
         또다른 예로 반지름과 각도를 받아 x,y를 계산해주는 Constructor method를 만들어보자.
         ''DesignPatterns 로 이야기한다면 일종의 FactoryMethod 임.(완전히 매치되는건 아니고, 어느정도 비슷) 비교적 자주 사용되는 패턴인데, 왜냐하면 객체를 생성하고 각각 임의로 셋팅해주는 일을 생성자 오버로딩을 더하지 않고서도 할 수 있으니까.
  • DPSCChapter3 . . . . 3 matches
          하지만, 두 경우에 자동차를 생성하기 위한 코드와 그것의 컴포넌트 하위 부분은 여전히 같다. 즉, 모든 CarPartFactory 클래스들은 동일한 메시지 프로토콜을(다형성)을 구현하기 때문에, 팩토리 클라이언트는 팩토리 타입이 무엇인지 상관하지 않고 호출을 할 수 있다. 그것은 단지 팩토리 프로토콜에 의해 제공되는 일반적인 메시지를 전송한다.
          ABSTRACT FACTORY 접근은 좀더 모듈적이고, 좀더 쉽게 확장 가능한 디자인을 할 수 있다. 시스템에 새로운 타입의 자동차를 추가하기 위해서, 우리는 CarPartFactory의 서브 클래스를
          타입이 무엇인지 신경쓰지 않고 같은 생성 메시지를 보내는 것을 팩토리가 수행한다.
  • DesignPatternsAsAPathToConceptualIntegrity . . . . 3 matches
         The following summary is from “Design Patterns as a Litmus Paper to Test the Strength of Object-Oriented Methods” and may provide some insight:
         1. Some O-O design methodologies provide a systematic process in the form of axiomatic steps for developing architectures or micro-architectures that are optimality partitioned (modularized) according to a specific design criteria.
         2. The following methodologies are listed according to their key design criteria for modularization:
         3. According to the authors only RDD and EDD have axiomatic rules for OO design and therefore are strong OO design methods.
         5. EDD and RDD will generate different design patterns that meet the primary modularization principle “encapsulate the part that changes.” in different ways when applied according to their axiomatic rules. For example RDD generates Mediator, Command, Template Method and Chain of responsibility (mostly behavior) where as EDD generates Observer, Composite, and Chain of responsibility (mostly structure).
         EDO 와 RDD 는 이 1차 원리인 "변화하는 부분에 대해 캡슐화하라"와 그들의 명확한 룰들에 따라 적용될때 다른 방법들로 만나서, 다른 디자인 패턴들을 생성해 낼 것이다. 예를 들면, RDD는 Mediator, Command, TemplateMethod, ChainOfResponsibility (주로 behavior), EDD 는 Observer, Composite, ChainOfResposibility(주로 structure) 를 생성해낼것이다.
         · Are some O-O design methods better at creating an environment where design patterns are used in a generative sense?
         · Will strong O-O design methods produce results for the “many” with the same conceptual integrity as “a few good minds.”
  • JavaScript/2011년스터디/CanvasPaint . . . . 3 matches
          var color=3,drawmethod=1;
          if(drawmethod==1) drawLines();
          else if(drawmethod==2) drawDotPoint();
          function drawMethod(temp)
          drawmethod=temp;
          <button type="button" onclick="drawMethod(1)"> LINE </button>
          <button type="button" onclick="drawMethod(2)"> DOT </button>
  • LazyInitialization . . . . 3 matches
         LazyInitialization의 하나의 변수당 두개의 메소드로 나눠서 초기화를 한다. 하나는 변수가 LazyInitialization되는 것을 감추어 주는 getter이고, 다른 하나는 변수에다 디폴트값으로 할당을 해줄 DefaultValueMethod이다. 이 방법은 유연성이 증대된다. 당신이 서브클래스를 만든다면, DefaultValueMethod를 오버라이딩함으로써, 기능을 바꿀 수 있다. 전장에서도 언급했듯이 성능도 증대시킬 수 있다.
         변수마다 getter를 만들자. 필요하다면 DefaultValueMethod를 써서 초기화를 하자.
  • Marbles . . . . 3 matches
          '''타입 1: 하나에 c1 달러며 정확하게 n1개의 구슬을 담을 수 있다.'''
          '''타입 2: 하나에 c2 달러며 정확하게 n2개의 구슬을 담을 수 있다.'''
         입력에 있는 각 테스트 케이스에 대해 비용을 최소화할 수 있는 해법을 출력한다(한 줄에 테스트 케이스 하나씩). 해법이 있으면 두 개의 음이 아닌 정수 m1, m2를 출력한다. 이때 mi는 타입 i인 상자의 개수를 의미한다. 해가 없으면 "failed"를 출력한다.
  • MoreEffectiveC++/Efficiency . . . . 3 matches
          class String { ... }; // 문자열 클래스 (이건 밑의 언급과 같이 표준 스트링 타입
         임시객체의 사용을 피하기 위한 operator 함수에 대한 overloading은 특별히 제한되는 것은 없다. 예를들어서 많은 프로그램에서 당신은 string객체가 char*를 수용하기를 바랄것이다. 혹은 그 반대의 경우에도 마찬가지이다. 비슷하게 만약 당신이 complex(Item 35참고)와 같은 수치 계산을 위한 객체를 사용할때 당신은 int와 double같은 타입들이 수치 연산 객체의 어느 곳에서나 유용히 쓰기를 원할 것이다. 결과적으로 string, char*, complex etc 이러한 타입들을 사용하는데 임시 인자의 제거 할려면 모두 overload된 함수가 지원되어야 한다는 것이다.
  • REFACTORING . . . . 3 matches
         Three Strike 법칙은 외우기 쉬워서 처음 Refactoring 을 하는 사람들에겐 적당하다. 하지만, 저 법칙은 주로 중복이 일어날 때의 경우이고, Rename Method/Field/Variable 같은 Refactoring 은 지속적으로 해주는 것이 좋다.
         ["Refactoring"] 에 의외로 중요한 기술로 생각되는건 바로 Extract Method 와 Rename 과 관련된 Refactoring. 가장 간단하여 시시해보일지 모르겠지만, 그로서 얻어지는 효과는 대단하다. 다른 Refactoring 기술들의 경우도 일단 Extract Method 와 Rename 만 잘 지켜지면 그만큼 적용하기 쉬워진다고 생각.
  • Refactoring/MovingFeaturesBetweenObjects . . . . 3 matches
         == Move Method ==
         A method is, or will be, using or used by more features of another class than the class on which it is defined.
         ''Create a new method with a similar body in the class it uses most. Either turn the old method into a simple delegation, or remove it altogether.''
         http://zeropage.org/~reset/zb/data/MoveMethod.gif
         ''Create a new class and move the relevant fields and methods from the old class into the new class.''
         ''Create methods on the server to hide the delegate.''
         == Introduce Foreign Method ==
         A server class you are using needs an additional method, but you can't modify the class.
         ''Create a method in the client class with an instance of the server class as its first argument.''
         A server class you are using needs serveral additional methods, but you can't modify the class.
         ''Create a new class that contains these extra methods. Make the extension class a subclass or a wapper of the original.''
  • RefactoringDiscussion . . . . 3 matches
         Martin Folwer의 Refactoring p326(한서), 10장의 Parameterize Method 를 살펴보면 다음과 같은 내용이 나온다.
          * ["Refactoring"]의 Motivation - Pattern 이건 Refactoring 이건 'Motivation' 부분이 있죠. 즉, 무엇을 의도하여 이러이러하게 코드를 작성했는가입니다. Parameterize Method 의 의도는 'couple of methods that do similar things but vary depending on a few values'에 대한 처리이죠. 즉, 비슷한 일을 하는 메소드들이긴 한데 일부 값들에 영향받는 코드들에 대해서는, 그 영향받게 하는 값들을 parameter 로 넣어주게끔 하고, 같은 일을 하는 부분에 대해선 묶음으로서 중복을 줄이고, 추후 중복이 될 부분들이 적어지도록 하자는 것이겠죠. -- 석천
         ps. 현실에서 정말 모든 상태 공간/기계가 고대로 유지되는 리팩토링은 없습니다. 가장 대표적인 Extract a Method 조차도 모든 경우에 동일한 행동 유지를 보장할 수는 없습니다. 1+2가 2+1과 같지 않다고 말할 수 있습니다. 하지만 우리에게 의미있는 정도 내에서 충분히 서로 같다고 말할 수도 있습니다 -- 물론 필요에 따라 양자를 구분할 수도 있어야겠지만, 산수 답안 채점시에 1+2, 2+1 중 어느 것에 점수를 줄 지 고민할 필요는 없겠죠.
  • Ruby/2011년스터디 . . . . 3 matches
          * 오리타입은 단순히 객체의 타입을 검사하지 않는 것 뿐인가?
          * 클래스는 타입이 아니다. 이것은 무엇을 이야기 하는 것일까?
  • STL . . . . 3 matches
         "[STL] 컨테이너는 포인터를 염두에 둬두고 설계된 것이 아니라, 객체를 담을 목적으로 설계된 자료 구조이다." 이 말을 너무 늦게 봤네요ㅠ_ㅠ 기본 데이터 타입 이외에 사용자 정의 데이터 타입(분류_[class])의 포인터를 사용하기 위해서는 상당한 노력이 필요 할것 같습니다. 혹시 쉬운 방법은 없나요? - [이승한]
          "사용자 정의 데이터 타입의 포인터를 사용하기 위해서는 상당한 노력이 필요할 것 같습니다" - 어떤 뜻인지? 힘들었던 예를 코드로 써주면 더 명확할 듯.~ --[1002]
  • StaticInitializer . . . . 3 matches
         [Java] 에서 'Class Variable' 또는 'Class Method' 라 불리는, 해당 Class 내에서 공용적으로 쓸 수 있는 변수나 메소드들을 Static Variable 또는 Static Method 라 불린다.
         이를 방지하려면, StaticInitializer 를 일반 Method 로 추출한뒤, 생성자에서 이를 호출한다. (단, 인스턴스를 2개 이상 만드는 클래스인경우 문제가 있겠다.)
  • XMLStudy_2002/XML+CSS . . . . 3 matches
          *하지만 XML문서는 반드시 텍스트 타입의 내용들로만 이루어진 것도 아니다
          *그리고 스키마의 사용이 보편화 되면서 여러 타입의 데이터들을 포함할 수 있는 문서 포맷이 되어 좀더 다양한 디스플레이 방식이 필요하다.
         <PA>위의 선언의 의미는 스타일시트의 타입은 CSS이고 CSS가 기술되어 있는 화일은
  • ZeroPage_200_OK/note . . . . 3 matches
         === HTTP Method ===
          * 이때의 __proto__는 프로토타입 체인이라 할수있다.(엔진별로 다를수 있다.)
          * javascript에서는 실행시간에 프로토타입 체인에 의해 실행한다.
  • 데블스캠프2006/월요일/연습문제/웹서버작성/변형진 . . . . 3 matches
          * 유연한 마임타입 설정으로 하이퍼 텍스트는 물론이고, 이미지 삽입, 멀티미디어 재생, 파일 다운로드도 모두 가능함
          * GET Method으로 넘어온 Query String를 처리한다.
          * POST Method, COOKIE 등으로 넘어온 데이터까지 처리할 수 있으면 더 좋다.
  • 레밍즈프로젝트/연락 . . . . 3 matches
         2. 픽셀의 기능 : Pixel 인터페이스는 draw라는 순수 가상 함수를 가지고 있어 그리고 전달인자로 CMyDouBuffDC*를 받게 되지. 그리고 SetPixel(int x, int y)따위를 통해서 윈도우에 그림을 그리게 되지 (이부분은 [레밍즈프로젝트/프로토타입/SetBit]참조)을 통해서 배경에 대한 픽셀을 뿌리게 되는거지.
         1. 먼저 윈도 구성부분. 버튼, 게임화면(기능상 미니맵도 포함), 이 부분들... CWnd 를 상속해서 커스텀 하면 구현 할 수 있을거래-_- 아마 그 부분 프로토타입을 작성해 보아야 할듯 싶어. 석천이형이 시간이 허락된다면 게시판에 자료들을 올려 주신다고 하셨는데... 시간이 되실지...흠... (게임화면부분, 버튼부분..)(주호 너가 하던 방식이 거의 맞는듯 싶어. 난 CWnd나 그 부분에 대해서 자료조사도 안하고 테스트도 안해봐서 뭐라고 할 처지가 못돼;; 그런데도 괜히 참견한것 같아서 좀 미안하네;; 쏘리;;)
          - 나중에 프로토 타입이나 CVS에 좀 올려줘
  • 레밍즈프로젝트/프로토타입/SetBit . . . . 3 matches
         SeeAlso) [레밍즈프로젝트], [레밍즈프로젝트/프로토타입], [MFC]
         SeeAlso) [레밍즈프로젝트/프로토타입/MFC더블버퍼링]
         프로그램에 사용되는 맵 타일의 형태가 확정된다면 [레밍즈프로젝트/프로토타입/MFC더블버퍼링]을 확장해 사용 할 것이다.
  • 바퀴벌레에게생명을 . . . . 3 matches
         다큐에서 CBug타입의 멤버 변수를 생성한다. 그리고 뷰에서 방향키의 키이벤트(OnKeyDown)를 받으면 다큐의 CBug 타입의 멤버 변수의 Move함수를 호출하고 변경된 position과 direction을 OnDraw에서 받아서 알맞은 그림을 잘라내서 뷰에 그린다.
         CTile클래스를 생성하여 바퀴벌레가 밟은 횟수를 나타내는 frequency라는 멤버함수를 생성. 다큐에서 CTile타입의 배열(tile)을 생성하였다.
  • 상협/삽질일지/2002 . . . . 3 matches
          * 이번 삽질은 정말 중대한 삽질이었다. 1학기 평점을 좌우한다고 볼 수 있는 삽질이었다. 1학기 중간고사 대채용으로 내는 자바 프로젝트에서 소켓 부문을 맡은 친구가 알수 없는 에러때문에 엄청난 삽질을 해서 더이상 나아갈수 없다고 했었다. 메신저에서 통신이 안되다니.. ㅡㅡ;; 그 에러는 "No Such Method Found" 에러다. 그러한 Method가 분명히 있는데도 불구하고 안되었다. 나는 황당했다. 그 친구가 자바는 많이 안했어도 MFC랑 C++을 잘해서 소켓을 맡았는데... 나도 그 에러를 같이 찾기 위해서 삽질을 하였다. 소스도 길고 내가 짠것도 아니어서 정말 못 찾을거 같았다. 그 소스는 특성학 모든 클래스가 딱 서버, 클라이언트 두 파일 안에 들어 있었다. 그래서 난 그 클래스들을 각자 파일로 분리해 보기로 했다. 잘 안풀리니깐 한번 정리나 해보면 뭐좀 어떻게 될까 싶은 마음에 그렇게 했다. 그렇게 정리를 하다 문득.. ㅡㅡ;; 같은 이름의 클래스를 서버, 클라이언트에서 각자 다르게 정의해서 사용하는 소스를 발견... ㅡㅡ;;, 그 친구는 아직 자바에 익숙하지 않아서 이런 실수를 했나 보다.. 나도 만약 소스를 클래스별로 파일로 만들 생각을 안했으면 그 에러의 원인을 발견하지 못했을 것이다. 휴. 큰일날 뻔 했넹.. 앞으로는 "No Such Method Found"같은 에러때문에 고생할일은 절대 없기를.. ㅡㅡ;
  • 이승한/PHP . . . . 3 matches
          PHP 변수타입으로 문자열을 지원한다. // 맞는지 모르겟네요. 대략 추정
          * 기본사용 : $변수이름의 형식이며 변수 타입은 존재하지 않는다. 객체를 이용하여 type을 지정할수는 있다.
          <form method="post" action="process.php">
          function 함수명(전달인자){ 함수내용; return 변수;} // Function 도 상관이 없었다. return은 없어도 돼며 type이 존재하지 않으므로 함수에 리턴타입은 존재하지 않는다.
  • 코바예제/시계 . . . . 3 matches
         시간 객체에 대한 인터페이스는 ObjTimeServer이며 getTime()이라는 메소드를 가지고 있는데 getTime()는 문자 형식으로 현재의 시간을 반환해 준다. CORBA 객체를 작성하는 첫번째 단계는 인터페이스를 만드는 것이다. 인터페이스는 IDL로 작성되며 인터페이스는 IDL 컴파일러로 컴파일된다. 이 IDL 컴파일러는 기본적으로 사용자가 이용하는(예를들면 VisiBroker) ORB에 포함되어 있는 것이다. IDL로 작성된 인터페이스를 컴파일하면 컴파일러는 두 개의 코드 파일을 생성해 준다. 이 코드 파일들은 각 IDL 컴파일러가 사용하도록 약정된 프로그래밍 언어로 되어 있다. 여기에서 사용하는 ORB는 Java ORB이므로 코드 파일은 Java(Stub, Skeleton)로 되어 있을 것이다. IDL 컴파일러에 의해 생성되는 코드는 프록시 객체(proxy object) 및 스켈레톤 코드이다. 클라이언트는 프록시 객체를 사용하여 IDL로 표현된 인터페이스 타입의 객체 레퍼런스에 대한 호출을 생성한다. 바꾸어 말하녀 프록시 객체는 클라이언트가 작업을 위해 사용하는 대리("stand-in") 객체인데 원격 객체가 마치 지역 객체처럼 보이게 해준다는 것이다. 스켈레톤 코드는 이러한 인터페이스를 지원하는 객체에 액세스하기 위해 사용된다. 생성되는 코드는 위치 투명성을 구현한다. 위치 투명성을 통해 객체 레퍼런스를 변환하여 네트웍 연결을 퉁해 원격 서버로 보내며, 객체 레퍼런스에 대한 오퍼레이션에 따르붙는 파라미터를 ["마샬링"]하고, 이를 객체 레퍼런스가 지시하는 객체의 현재 메소드에 전달하여 메소드를 수행하고 그 결과를 반환하려고 하는 것이다. 바꾸어 말하면 클라이언트는 IDL 컴파일러에 의해 생성된 프록시 객체를 가지고 작업을 하는데, 그것이 마치 지역 객체로 작업하는 것처럼 보일 것이라는 의미이다. ORB와 통신하는 것이 프록시 객체의 임무이며 ORB는 네트웍 연결을 관리하고 파라미터를 실제 서버 함수에 넘겨주며 결과를 리턴한다. 이런 식으로 수행에 대한 투명성을 유지한다.
         클라이언트 구현은 기본적으로 다음 세 가지 단계를 통해 이루어진다. 먼저 CORBA 환경, 즉 ORB를 초기화한다. ORB를 초기화한다는 것은 ORB 의사 객체(pseudo-object)에 대한 객체 레퍼런스를 얻게 된다는 것을 의미한다. ORB가 '의사 객체'라 불리는 이유는 그 메소드가 런타임 시스템과의 통신을 통해 라이브러리의 형태로 제공되며, 의사 객체 레퍼런스는 CORBA 인터페이스 오퍼레이션에 대한 파라미터로 전달될 수 없기 때문이다. 그 다음 단계는 객체 레퍼런스를 얻는 것이다. 객체 레퍼런스는 불투명한 데이터 구조이다. 그러나 객체 레퍼런스를 문자열로 바꿈으로써 지속성을 가지게 될 수 있다. 이것은 '객체 레퍼런스의 문자열화'라 불리며, 그 결과 얻어지는 문자열을 일컬어 '문자열화 객체 레퍼런스'라고 한다.(IOR) 이 문자열화 객체 레퍼런스는 원래의 "유효한" 객체 레퍼런스로 다시 바뀔 수 있다. 이 과정은 CORBA, 즉 ORB 인터페이스에서 정의된 두 가지 오퍼레이션 object_to_string()과 string_to_object()를 이용하여 이루어진다. 모든 CORBA 2.0 호환 ORB는 상호 운용 가능한 문자열화 객체 레퍼런스를 실제 돌아가는 객체 레퍼런스로 바꿀 수 있다. 적절한 타입으로 객체의 범위를 줄이면 그러한 결과를 얻을 수 있다. 이러한 오퍼레이션을 'narrow'라 한다. ORB를 초기화하고 객체 레퍼런스를 얻은 후에야 CORBA 프로그래밍은 원래 의도한 표준 객체 지향 프로그래밍처럼 동작하게 된다. 클라언트가 객체의 메소드를 호출하게 되면, 실제로 그 메소드는 원격 객체와 함께 동작하지만 클라이언트가 보기에는 지역 객체와 함께 동작하는 것처럼 보인다.
         //이제 객체 레퍼런스의 범위를 적절한 타입으로 줄인다.(narrow down)
  • AcceleratedC++/Chapter3 . . . . 2 matches
          2. x의 타입에 맞지 않는 값이 들어올때
          * vector란? - 주어진 타입의 값들의 모음을 가지고 있는 컨테이너이다. 확장요청이 있을때 커진다.
  • AcceleratedC++/Chapter7 . . . . 2 matches
          * map은 []연산자를 통해 키값을 통해서 접근이 가능하나, 이 경우 string type key이기 때문에 모든 배열의 요소를 돌기위해서 일반적인 방식을 선택하였다. map의 각각의 요소는 '''pair'''라는 자료의 타입으로 구성. map은 pair의 first 요소에는 key, second 요소에는 value를 담는다.
          상기에서는 map<string, vector<string> >의 형태로 구현해야한다. 그러나 <adjective>, <location>, <noun>과 같이 동일한 키 값에 대해서 규칙이 여러개가 존재하는 경우를 다루기 위해서 '''map <string, vector< vector<string> > >''' 의 타입을 이용한다.
  • CCNA/2013스터디 . . . . 2 matches
          - (속도)(signaling 방법)(전송 매체 타입)으로 표기한다.
          1. ISDN 스위치 타입 설정
  • ClearType . . . . 2 matches
         그림을 보면 잘 이해할 듯. 4번째의 경우가 클리어 타입이 사용하는 방식이다.
          * [http://www.microsoft.com/typography/cleartype/tuner/Step1.aspx ClearType Tuner]라는 프로그램으로 세부적인 클리어타입 셋팅을 할 수 있다.
  • ConstructorParameterMethod . . . . 2 matches
         === Constructor Parameter Method ===
         Constructor Method로 인스턴스를 만들때, 그리로 넘겨준 파라메터들을 새롭게 만들어진 인스턴스로 어떻게 갖고 오는가? 가장 유연한 방법은 각각의 변수에 대해 setter들을 만들어 주는 것이다. 즉,
  • ConverterMethod . . . . 2 matches
         === Converter Method ===
         스몰토크의 String 클래스에 보면 asDate라는 메세지가 있다. 켄트벡이 경험한 정말 극단적인 경우에 하나의 객체마다 다른 형태로 변환시켜주는 Converter Method가 30개씩 있었다고 한다. 새로운 객체가 추가될때마다 저 30개의 메소드를 모두 추가해줘야만 했던 것이다.
  • C언어정복/3월30일 . . . . 2 matches
         8. 정수 데이터 타입
         9. 부동소수점 데이터 타입
  • GRASP . . . . 2 matches
         '''타입에 따라 대안이나 행위가 변할 때, 해당 타입들에 행위의 책임을 할당하라'''
  • HowToStudyDesignPatterns . . . . 2 matches
          ''...but I always teach Composite Pattern, Strategy Pattern, Template Method Pattern, and Factory Method Pattern before I teach Singleton Pattern. They are much more common, and most people are probably already using the last two. ... ''
  • KIV봉사활동/예산 . . . . 2 matches
          * 전자모기채 AA건전지타입1+USB충전타입1 = 11520원
  • MoreEffectiveC++/Exception . . . . 2 matches
         자자 그럼 남은건 오직 catch-by-reference(참조로서 예외 전달)이다. catch-by-reference는 이제까지의 논의를 깨끗이 없애 준다. catch-by-pointer의 객체 삭제 문제와 표준 예외 타입들을 잡는거에 대한 어려움, catch-by-value와 같은 ''slicing'' 문제나 두번 복제되는 어려움이 없다. 참조로서 예외 전달에서 예외 객체는 오직 한번 복사되어 질 뿐이다.
         이 템플릿은 oprator== 함수를 모든 형에 적용시키는 것이다. 아마 같은 주소에 같은 타입이면 true를 반환하지만 아니라면 그것은 false를 반환한다. 이런 템플릿은 아무런 예외도 던지지 않은 템플릿으로 부터 함수가 만들어지는 상태에 따라 적합한 예외가 포함된다. 하지만 그것은 꼭 사실이 아니다. 왜냐하면 operator&(주소 반환 operator)가가 꼭 같은 몇몇의 형들을 위해서 overload되었기 때문이다. 만약 사실이 그러하다면 operaotr&가 operator== 안쪽에서 불릴때 예외를 던질 것이다. 그렇게 되면 우리의 예외 명세는 거부되고, 곧장 unexpected 로 직진하게 되는거다.
  • MoreEffectiveC++/Operator . . . . 2 matches
          * C++는 타입간의 암시적 type casting을 허용한다. 이건 C의 유산인데 예를 들자면 '''char'''과 '''int''' 에서 '''short'''과 '''double''' 들이 아무런 문제없이 바뀌어 진다. 그런데 C++는 이것 보다 한수 더떠서 type casting시에 자료를 잃어 버리게 되는 int에서 short과 dougle에서 char의 변환까지 허용한다.[[BR]]
          * '''''implicit type conversion operator''''' 은 클래스로 하여금 해당 타입으로 ''return'' 을 원할때 암시적인 변화를 지원하기 위한 operator이다. 아래는 double로의 형변환을 위한 것이다.
  • MoreEffectiveC++/Techniques1of3 . . . . 2 matches
         이러한 것은 간단하다. operator new는 collection에 메모리를 할당하는 주소를 기록하고, operator delete는 그것을 지운다. 그리고 isSafeToDelete는 collection에 해당 주소가 있는지 알려주는 역할을 한다. 만약 operator new와 operator delete가 전역 공간에 있다면 이것은 모든 타입의 작업시에 적용 될것이다.
          스마트 포인터는 자동으로 0 or null의 초기화로 미 초기화로 인한 문제를 방지하고, 파괴시에도 built-in 타입의 특성으로 자동으로 파괴 시켜준다.
  • OurMajorLangIsCAndCPlusPlus/stdarg.h . . . . 2 matches
         === 타입 ===
         || va_list || 가변 전달인자 리스트 타입 ||
  • OurMajorLangIsCAndCPlusPlus/stdlib.h . . . . 2 matches
         || typedef wchar_t || 확장 문자 상수 크기의 정수 타입 ||
         || ldiv_t ldiv(long int numer, long int denom); || div()와 동일하고 변수 타입만 long int ||
  • ParametricPolymorphism . . . . 2 matches
         무엇인고 하니, 바로 리턴해야할 객체의 타입을 인수로 준다는 개념이다. ''(C++의 템플릿 같지?)''
         위와 같은 개념의 코드로 작성이 되면 동적 캐스팅이 필요 없을뿐만아니라 잘못된 타입 캐스팅으로 인한
  • RunTimeTypeInformation . . . . 2 matches
         동적으로 만들어진 변수의 타입을 비교하고, 특정 타입으로 생성하는 것을 가능하게 한다. (자바에서는 instanceof를 생각해보면 될 듯)
         int my_comparison_method_for_generic_sort(base &ref1, base &ref2)
  • STLErrorDecryptor . . . . 2 matches
         VC++를 가지고 STL 프로그래밍을 하시는 분들이 가장 많이 느끼는 불편함(어느 플랫폼이나 마찬가지이지만)중 하나가 바로 "'''에러 메시지에 나타나는 STL 컴포넌트가 무엇인지 도통 모르겠다'''"라는 점일 겁니다. 이는 컴파일러가 STL 템플릿을 인스턴스화할 때 타입 매개 변수가 모두 포함된 상태로 전체 이름을 써 버리기 때문에 STL 책에 나오지도 않는 클래스 이름과 템플릿 이름 등이 마구 튀어나옴은 물론이거니와, 인스턴스화한 클래스 이름 자체가 엄청나게 길어져서, 코드 한 줄에 대한 에러 메시지가 수십 여 줄까지 만들어지는 현상이 일어나지요.
         Upload:WorkingMethod.gif
  • TFP예제/WikiPageGather . . . . 2 matches
          * '생각할 수 있는 가장 단순한 것부터 생각하라.' 디자인은 TFP 와 Refactoring의 과정만으로 어느정도 보장이 된다. TFP을 추구하는 이상 기능와 의도에 의한 모듈화가 기본적으로 이루어진다. (여태껏의 경험 -- 그래봤자 3번째지만 -- 에 의하면, TFP를 하면서 LongMethod 냄새가 난 적이 없었다. (LongMethod와 Bad Smell 에 대해서는 BadSmellsInCode를 참조하라.) 만일 중복코드 등의 문제가 발생하더라도 기존의 막무가내식 방식에 비해 그 빈도가 적다. 만일 Bad Smell 이 난다면 ["Refactoring"] 을 하면 된다. (참고로 밑의 소스는 ["Refactoring"]의 과정은 거치지 않았다.)
  • ZIM/UIPrototype . . . . 2 matches
         사용자 인터페이스의 프로토타입을 보여주세요.
         Software for Use와 Contextual Design의 일독을 권합니다. UI쪽(특히 실전)에서는 탁월한 책들입니다. 이 책들에서는 UI 프로토타이핑을 종이를 통해 하기를 강력하게 추천하고 있습니다. 각종 자동화 툴을 써보면 오히려 불편한 경우가 많습니다. 넓은 종이와 다양한 크기의 3M 포스트 잇을 이용해서 버튼 같은 것의 위치를 자유로이 옮겨볼 수 있습니다. 이렇게 만든 프로토타입을 사무실 벽에 걸어넣고 그 앞에서 토론도 하고, 즉석에서 모양을 바꾸기도 합니다. 초기에는 커뮤니케이션 보조 도구로 화이트보드를 많이 사용하기도 합니다. 그러나 한 자리에서 함께 작업할 기회가 적은 경우에는 어쩔 수 없이 전자문서와 이미지에 의존해야겠죠. 제 경우는 주로 스캐너를 이용해서 손으로 그린 이미지 공유를 했습니다. 온라인에서 공동으로 디자인 토론을 할 경우에는 화이트보드가 지원되는 온라인 컨퍼런싱 툴을 씁니다. (e.g. 넷미팅) --김창준
  • [Lovely]boy^_^/Diary/2-2-10 . . . . 2 matches
          * ["SmalltalkBestPracticePatterns/Behavior/ComposedMethod"] 읽고 요약.
          * ["SmalltalkBestPracticePatterns/Behavior/ComposedMethod"] read and summary.
  • html5/offline-web-application . . . . 2 matches
          * 'text/cache-manifest'라는 MIME 타입으로 배포되도록 설정해야 한다.
          * text/cache-manifest 타입으로 배포해야 한다.
  • 논문번역/2012년스터디/서민관 . . . . 2 matches
         이 시스템들은 주로 특징 추출(feature extract) 타입이나 인식 단계 전 또는 후에 텍스트 라인을 분리하거나 하는 점에서 차이가 있다.
         이진화 된 수필 지역의 수평 밀도 히스토그램을 이용하는 Otsu method를 이용하면 이 임계치를 자동으로 구할 수 있다.
         이 실험들의 문자 오류율은 table 1에 나타나있다. 실험의 타입은 첫 두 열에 나와 있고, 언어 모델을 적용하지 않은 에러율은 세 번째 열에, bi-gram 언어 모델을 문자 수준에서 사용한 결과는 네 번째 열에서 찾을 수 있다.
  • 데블스캠프2005/FLASH키워드정리 . . . . 2 matches
         플레시의 함수는 특별한 데이터 타입이 없으므로 리턴타입을 미리 선언하지 않는다.
  • 레밍즈프로젝트/프로토타입/마스크이미지 . . . . 2 matches
         SeeAlso) [레밍즈프로젝트], [레밍즈프로젝트/프로토타입], [MFC], [(zeropage)bitblt로투명배경구현하기]
         SeeAlso) [레밍즈프로젝트/프로토타입/MFC더블버퍼링]
  • 새싹교실/2011/데미안반 . . . . 2 matches
          * [강소현] - 1시간 늦췄지만, 학교 수업 이전에 새싹 교실을 하는 것이 많이 부담이 되는 듯 합니다. 내일 오후에 수업을 하면서 다시 시간을 정할 계획입니다. 오늘 배운 전처리기와 변수, 데이터 타입을 끝으로 이론 위주의 수업은 거의 없을 거에요! 앞으로 그 동안 배웠던 기본적인 것을 활용하여 열심히 실습을 해봅시다ㅋㅋ
          * 타입 4 가지
  • 중앙도서관 . . . . 2 matches
         지금 도서관의 온라인 시스템은 상당히 오래된 레거시 코드와 아키텍춰를 거의 그대로 사용하면서 프론트엔드만 웹(CGI)으로 옮긴 것으로 보인다. 만약 완전한 리스트럭춰링 작업을 한다면 얼마나 걸릴까? 나는 커스터머나 도메인 전문가(도서관 사서, 학생)를 포함한 6-8명의 정예 요원으로 약 5 개월의 기간이면 데이타 마이그레이션을 포함, 새로운 시스템으로 옮길 수 있다고 본다. 우리과에서 이 프로젝트를 하면 좋을텐데 하는 바램도 있다(하지만 학생의 사정상 힘들 것이다 -- 만약 풀타임으로 전념하지 못하면 기간은 훨씬 늘어날 것이다). 외국의 대학 -- 특히 실리콘벨리 부근 -- 에서는 SoftwareEngineeringClass에 근처 회사의 실제 커스터머를 데려와서 그 사람이 원하는 "진짜" 소프트웨어를 개발하는 실습을 시킨다. 실습 시간에 학부생과 대학원생이, 혹은 저학년과 고학년이 어울려서(대학원생이나 고학년이 어울리는 것이 아주 중요하다. see also NoSmok:SituatedLearning ) 일종의 프로토타입을 만드는 작업을 하면 좋을 것 같다. '''엄청나게''' 많은 것을 배우게 될 것이다. --JuNe
         물론 현재도 저학년, 고학년이 함께 일하는 경우는 있다. 고학년이 예비역인 경우가 그렇다. 하지만 대부분의 경우, 저학년끼리, 고학년끼리 뭉치거나, 서로 섞인다고 해도 고학년은 방외자요, 관찰자로 남는다. 보다 명시적이고 적극적으로 저학년, 고학년 공동 학습을 장려할 필요가 있다. 우리는 교과과정이나 교육방법에 대한 스테레오타입에서 벗어나야 한다.
  • 토비의스프링3/밑줄긋기 . . . . 2 matches
          * 의미 없는 숫자를 프로퍼티에 사용하면 타입이 안전하지 않아서 위험할 수 있다.
          * 그래서 숫자 타입을 직접 사용하는 것보다는 자바 5 이상에서 제공하는 이늄(enum)을 이용하는 게 안전하고 편하다.
  • .bashrc . . . . 1 match
         alias ls='ls -hF --color' # 파일타입 인식을 위해 색깔을 추가
  • 02_C++세미나 . . . . 1 match
          * 같은 타입의 데이터를 묶어서 표현해줄수 있는 것.
  • 02_Python . . . . 1 match
          '' 기존 C 나 C++ 의 경우는 어떠한 변수를 지정할떄 타입을 꼭 지정해 줘야했다 그 예로 int 나 char 이 있다 하지만 파이썬의 경우는
  • 3N+1Problem/황재선 . . . . 1 match
         http://bioinfo.sarang.net/wiki/AlgorithmQuiz_2f3Plus1 에서 yong27님의 소스코드를 보았다. 소스가 정말 깔끔했다. 실행속도가 빨라서 그 원인을 분석해가며 지난번 작성했던 코드를 수정했다. 나의 목적은 0.001초라도 빠르게 결과를 출력하는 것이었다. 실행시간을 최소화하기위해 클래스마저 없앴다. 특히 두 부분을 수정하니 실행시간이 현저히 줄었다. 하나는 클래스 멤버변수를 제거하고 지역변수화한 경우인데 왜 그런지 모르겠다. 둘째는 사전형 타입인 cycleDic 에서 key를 문자열에서 숫자로 바꾼 부분이었다. 지난번 구현시 무엇때문에 수치형을 문자열로 변환하여 key로 만들었는지 모르겠다. -- 재선
  • ACM_ICPC/2012년스터디 . . . . 1 match
          - Hungarian Method (가중치가 들어간 매칭)
  • AcceleratedC++ . . . . 1 match
          흠 오래끌면 지쳐서 다 못보게될껄.. -_-;; 난 오래끌면 절대로 책을 안보는 타입이라서;; - [eternalbleu]
  • AcceleratedC++/Chapter4 . . . . 1 match
          * max(같은 타입의 파라메터 두개) : 뭐 큰값을 리턴해 주겠지
  • Adapter . . . . 1 match
         DP의 p147을 보면 '''Adapter'''클래스는 반드시 그것의 '''Adaptee'''를 타입으로 선언해서 가지고 있어야만 한다.이런 경우에는 해당 클래스와 그것에서 상속되는 클래스들만이 기능을 사용(adapt)할수 있다. Smalltalk에서 엄격한 형검사(Strong Typeing) 존재 않으면, class 가 '''Adapter'''에서 '''Adaptee'''로 보내어지는 메세지를 보낼수 있는 이상 '''Adaptee'''가 어떠한 클래스라도 상관없을 것이다. [[BR]]
  • Ajax/GoogleWebToolkit . . . . 1 match
         간단히 말하자면 jscript 기반의 ajax 개발환경을 java 개발환경으로 바꾸어 버리는 툴킷이다. java 의 강력한 타입 체킹을 이용해서 개발의 비효율성을 대폭 감축시킨다.
  • Android/WallpaperChanger . . . . 1 match
          * 아ㅋㅋ interface를 만든거같진 않지만.. enum은 객체같지만 타입임ㅋㅋ 오늘부터 jcp에서 표준 문서 읽기로 했다는 - [서지혜]
  • BoaConstructor . . . . 1 match
         UnitTest 가 있는 것만으로도 언제든지 리팩토링할 수 있다는 믿음이 있다면..~ 혼자서 프로토타입 플밍 할때는 그냥 StepwiseRefinement & UnitTest 조합도 괜찮은 것 같다. 빨리 기능을 얻은뒤 기능들 보고 중간에 CRC 해가면서 유용할만한 Object들을 추출해나가는 것도. 언제든지 Object 뽑아낼 자신이 있으니까.
  • CivaProject . . . . 1 match
          * C++ 에서 throw 타입을 고정시킬 수 있나...
  • CodeConvention . . . . 1 match
          * 1980년대 charles simonyi 논문 Meta-programming : A Software Prodution Method
  • ComputerGraphicsClass/Exam2004_2 . . . . 1 match
         === Ploygon Rendering Methods ===
  • ComputerNetworkClass/Report2006/PacketAnalyzer . . . . 1 match
          * MFC 각 데이터 타입 크기
  • CppStudy_2002_2 . . . . 1 match
         || 8.1 ||["Refactoring/ComposingMethods"]||몇개 소스 리팩토링 해보기||
  • DataCommunicationSummaryProject/Chapter11 . . . . 1 match
          * 레이저 빔은 허가가 필요없고, 다른 어떤 타입의 고정 무선시스템보다 나은 수용능력을 제공한다. 하지만 거리가 졸라 짧다.
  • DataCommunicationSummaryProject/Chapter5 . . . . 1 match
          * 하나의 표준을 하면 좋겠지만 불가능한게, 이미 크게 두가지 타입의 CDMA가 있고, TDMA도 있다. 기존의 시스템과 호환을 이루는게 중요하다.
  • DecomposingMessage . . . . 1 match
         메세지를 다루는 또 다른 방법은 여러 개의 조각으로 나누는 것이다. 리팩토링의 ExtractMethod이다. 스몰토크는 잘게 쪼개는 것을 좀 더 공격적으로 한다. 그래서 한 메소드의 길이가 3-4줄정도밖에 안된다고 한다. 이것이 가능한 이유는 스몰토크는 다른 언어에 비해 높은 수준의 추상화를 제공해주기 때문이다. self 에게로 메세지를 보내자.
  • DefaultValueMethod . . . . 1 match
         == Default Value Method ==
  • DispatchedInterpretation . . . . 1 match
         그.러.나. 객체의 정보가 다른 객체에 영향을 미쳐야만 할때가 있다. 간단할때는, 그냥 인코딩된 오브젝트에 메세지를 보내면 수월하게 해결이 가능하다. 하지만 복잡한 경우에는 힘들다. 문제는 수백의 클라이언트들에게 모든 타입의 정보에 대해 명시적으로 case 형태의 구조를 만들기를 원하지 않는다는 것이다.(??)
  • DylanProgrammingLanguage . . . . 1 match
         define method say-hello()
         end method say-hello;
          * 보통 '약형 언어'를 dynamic languages 라고 하던데. 런타임에서 동적으로 타입을 처리하니까. 처음 들어봤는데, 97년에 태어난 언어네... --[이덕준]
  • EclipsePlugin . . . . 1 match
         여러 언어의 소스의 Highlight 해주는 라이브러리인데 여기에 Eclipse Plug-in 도 있습니다. JSP, C/C++, HTML, XML 등등 여러 타입이 지원됩니다. [http://colorer.sourceforge.net/lang-list.html 지원 언어 목록]
  • EffectiveSTL/Iterator . . . . 1 match
          * 대부분의 메소드들의 인자가 iterator타입이다.
  • ExecuteAroundMethod . . . . 1 match
         === Excute Around Method ===
  • ExtractMethod . . . . 1 match
         See ["Refactoring/ComposingMethods"]
  • ExtremeProgramming . . . . 1 match
          * http://www.martinfowler.com/articles/newMethodology.html#N1BE - 또다른 '방법론' 이라 불리는 것들. 주로 agile 관련 이야기들.
          * http://www.freemethod.org:8080/bbs/BBSView?boardrowid=3220 - 4가지 가치 (Communication, Simplicity, Feedback, Courage)
          * http://www.freemethod.org:8080/bbs/BBSView?boardrowid=3111 - 4가지 변수 (Resource, Quality, Time, Scope)
  • FactoryMethodPattern . . . . 1 match
         #redirect Gof/FactoryMethod
  • FocusOnFundamentals . . . . 1 match
         내가 EE 교육을 시작했을때 나는 나의 낡아빠진 'RCA Tube Manual'이 쓸모없는 것임을 알고 놀라게 되었다. 나의 교수들 그 누구도 특정 tube 나 tube 의 타입의 장점에 대해 칭찬한 적이 없었다. 내가 왜 그랬는지 질문했을때 '유명했던 디바이스나 기술들은 10년 내에는 별볼일 없어진다'는 것을 알게되었다. 대신, 나는 근본적인 물리, 수학, 그리고 내가 오늘날까지도 유용함을 발견하는, 사고하는 방법에 대해 배웠다.
  • Functor . . . . 1 match
         비슷한 구현에 대해서 OO 쪽에서는 MethodObject 라 부르기도 함. (Refactoring에 나옴) 구현 모양상으로 보면 CommandPattern, C++ 진영에서는 Functor 가 일반적인 표현.; --[1002]
  • HanoiProblem . . . . 1 match
         그리고 재귀함수를 만들 때 유의점과 사고보조물을 가르쳐 줍니다. 유의점이라면 재귀함수는 리턴되는 값의 종류(타입)가 모두 동일해야 한다는 것, 재귀호출을 벗어나는 지점 근방에서 유의해야 한다는 점 등이고, 사고보조물로는 스택의 상태를 그림으로 그리는 방법이나, 수식을 사용하는 방법 등이 있겠죠.
  • HardcoreCppStudy/첫숙제/ValueVsReference/김아영 . . . . 1 match
         - 인수를 전달할 때에는 함수에 전달되는 인수가 포인터라는 사실이 함수 정의와 프로토타입에 반영되어야 한다.
  • HowToStudyDataStructureAndAlgorithms . . . . 1 match
         첫번째가 제대로 훈련되지 못한 사람은 알고리즘 목록의 스테레오 타입에만 길들여져 있어서 모든 문제를 자신이 가진 알고리즘 목록에 끼워맞추려고 합니다. DesignPatterns를 잘 못 공부한 사람과 비슷합니다. 이 사람들은 마치 과거 수학 정석을 수십번을 공부해서 문제를 하나 던져주기만 하면, 생각해보지도 않고 자신이 풀었던 문제들의 패턴 중 가장 비슷한 것 하나를 기계적, 무의식적으로 풀어제끼는 "문제풀이기계"와 비슷합니다. 그들에게 도중에 물어보십시오. "너 지금 무슨 문제 풀고있는거니?" 열심히 연습장에 뭔가 풀어나가고는 있지만 그들은 자신이 뭘 풀고있는지도 잘 인식하지 못하는 경우가 많습니다. 머리가 푸는 게 아니고 손이 푸는 것이죠.
  • IntelliJ . . . . 1 match
         || F6 || Rename. class 이건 Method 이건. Refactoring 의 ["IntelliJ"] 의 중요 기능중 하나. ||
         || ctrl + alt + M || extract method refactoring||
  • Java/ServletFilter . . . . 1 match
         Java Servlet 2.3 스펙에서부터 소개된 새로운 컴포넌트 타입.
  • Java/숫자와문자사이변환 . . . . 1 match
          Object를 int 타입으로 형변환 하기 ... 바로 안되므로 String으로 바꾼후 int로 형변환 한다.
  • Java2MicroEdition/MidpHttpConnectionExample . . . . 1 match
          httpConn.setRequestMethod(HttpConnection.GET);
  • JavaScript/2011년스터디/3월이전 . . . . 1 match
          * 프로토타입의 정의와 사용 상속부분이 다른 언어와는 다르다.
  • JavaScript/2011년스터디/7월이전 . . . . 1 match
          * 불리언 타입 변환 -41p에서 만약 불리언 값이 문자열 문맥에서 사용되면 true는 문자열"true"로 변환된다와 같은 말이 무슨말인지 정확히 모르겠어요. 저희가 알아낸 것은 true를 write내에 쓰면 1로 인식한다는 것뿐이었어요.
  • JavaScript/2011년스터디/김수경 . . . . 1 match
          // Add a new ._super() method that is the same method
          // The method only need to be bound temporarily, so we
          // All construction is actually done in the init method
          * Super Method
  • JavaStudy2004/클래스상속 . . . . 1 match
          만일 하위클래스에서 상위클래스의 메소드의 이름과 인자의 타입을 똑같이 가진 메소드를 정의한다고 하면 어떻게 되는가? 이것은 계층적으로 아래에 있는 것이 먼저 실행되게 되어 있다. 이러한 방식으로 임의로 상의클래스의 메소드를 감추고 하위클래스에 필요한 메소드를 정의할 수 있다. 바로 중복(overriding)이라고 부르는 것이다.
  • JollyJumpers/Leonardong . . . . 1 match
          run = staticmethod(run)
         처음에 리스트에 차를 집어넣은 후 정렬하려 했다가 집합 개념이 떠올라 그 쪽으로 해결했다. statementForSeries메서드 부분에 있던 CheckJolly메서드를 따로 테스트하면서 ExtractMethod를 하게 되었고, 차가 음수인 경우도 테스트를 통해 알게되었다. 보폭이 아직 좁지만 술술 진행한 문제이다.
  • LawOfDemeter . . . . 1 match
         objects than you need to either. In fact, according to the Law of Demeter for Methods, any method of an
         object should only call methods belonging to:
         any parameters that were passed in to the method.
         Specifically missing from this list is methods belonging to objects that were returned from some other
         SortedList's add method is addElementWithKey()
         foo's method to query its key is getKey()
         The disadvantage, of course, is that you end up writing many small wrapper methods that do very little but
         of maintaining these as separate methods. Why bother?
         The last, of course, is why Eiffel requires only side-effect free methods to be called from within an
  • ModelingSimulationClass_Exam2006_1 . . . . 1 match
         (a) (5 points) Arena에 나오는 4가지 타입의 모델 설명
  • MoniWikiACL . . . . 1 match
         == ACL 타입 ==
  • MoreEffectiveC++/Techniques2of3 . . . . 1 match
         s1[1]의 표현은 CharProxy를 반환하기 때문에, 두번째에서 오른쪽의 의미는 CharProxy*를 반환하는 것이다. 하지만 CharProxy*를 char*로 바꾸는 형변환은 허용되지 않기때문에 p의 초기화에서 컴파일러는 에러를 낸다. 일반적으로 proxy의 주소는 실제 객체보다 다른 포인터 타입을 가진다.
  • NUnit/C#예제 . . . . 1 match
          1. 테스트 하고자 원하는 Method 에는 Test를, 속한 클래스에는 TestFixture Attribute를 붙인다.
  • NeoCoin/Server . . . . 1 match
         find / -user <사용자> -fstype <파일시스템 타입> !-name "/dev/*" ! -name "/proc/*" -exec ls -lh{} \;
  • NextEvent . . . . 1 match
         그냥 하루를 할애하는 건 어떨까 하는 생각이 든다. 그러니까 아침 8시에 시작해서 밤 10시에 끝나게 한다. 한 팀은 6명 정도로 구성된다. 꼭 팀 전원이 신입생일 필요는 없다 -- 헌내기 새내기가 고루 섞이도록 할 수도 있다. 각 팀에 공통 미션을 준다. 개발은 꼭 학교 컴퓨터실에서 할 필요가 없다. 여기 저기(도서관일수도 있고, 다운타운일수도, PC방일수도 있다) 찾아다닐 수도 있다. 여기저기 카메라로 사진을 찍고 설문조사를 하러 다닐 수도 있다. 뭐 꼭 (소프트웨어) 개발일 필요도 없다. 그냥 뭔가 만들어보게 한다. 그게 꼭 파이널 프로덕트가 아니고 프로토타입이어도 좋다. 밤 10시가 되었을 때 서로 자기 팀의 결과물을 들고와서 자랑한다.
  • NumericalAnalysisClass . . . . 1 match
         ''Object-Oriented Implementation of Numerical Methods : An Introduction with Java and Smalltalk'', by Didier H. Besset.
  • OOP . . . . 1 match
          * [Method]
  • OpenCamp/두번째 . . . . 1 match
          * 17:40~19:00 타입 캐스팅은 위험해! 김수경
  • OptimizeCompile . . . . 1 match
         배열의 참조 연산 또한 좋은 예가 될 수 있다. a[i] 와 같은 표현식에서 a[i]의 주소는 배열 a 의 시작주소로부터 a의 타입 크기 * i 만큼 떨어진 곳이 된다.
  • PNA2011/서지혜 . . . . 1 match
          * 나는 동기가 필요한 사람에게 정보를 주는 타입인듯.
  • PairProgramming . . . . 1 match
         추가적으로 토론했던 사항 : Connection 클래스의 생성자에 매개변수로 데이타베이스 타입을 넘겨주면 된다는 것과 파생된 클래스를 생성하는 것
  • PerformanceTest . . . . 1 match
         === ftime 함수의 프로토타입 ===
  • PluggableSelector . . . . 1 match
         실행될 selector를 가지는 변수를 추가한다. 이름 뒤에 Message를 덧붙인다. selector를 실행하기 쉽게 해주는 Composed Method를 만든다.
  • ProjectAR/Design . . . . 1 match
          * CARObject는 각자의 리치, 공격 타입 등에 맞게 공격할 수 있어야 한다.
  • ProjectAR/회의/20030525 . . . . 1 match
          * 멤버 변수 앞에는 m_ , 포인터는 m_pComponent 이런식으로 간다. 그 외에 타입 정보는 넣지 않는다.
  • ProjectPrometheus/Journey . . . . 1 match
          * Side Effect 는 Refactoring 의 적이라는 생각이 오늘처럼 든 적이 없었다. -_-; Extract Method 같은 일을 하는 경우 더더욱.! --["1002"]
  • ProjectPrometheus/개요 . . . . 1 match
         지금 도서관의 온라인 시스템은 상당히 오래된 레거시 코드와 아키텍춰를 거의 그대로 사용하면서 프론트엔드만 웹(CGI)으로 옮긴 것으로 보인다. 만약 완전한 리스트럭춰링 작업을 한다면 얼마나 걸릴까? 나는 커스터머나 도메인 전문가(도서관 사서, 학생)를 포함한 6-8명의 정예 요원으로 약 5 개월의 기간이면 데이타 마이그레이션을 포함, 새로운 시스템으로 옮길 수 있다고 본다. 우리과에서 이 프로젝트를 하면 좋을텐데 하는 바램도 있다(하지만 학생의 사정상 힘들 것이다 -- 만약 풀타임으로 전념하지 못하면 기간은 훨씬 늘어날 것이다). 외국의 대학 -- 특히 실리콘벨리 부근 -- 에서는 SoftwareEngineeringClass에 근처 회사의 실제 커스터머를 데려와서 그 사람이 원하는 "진짜" 소프트웨어를 개발하는 실습을 시킨다. 실습 시간에 학부생과 대학원생이, 혹은 저학년과 고학년이 어울려서(대학원생이나 고학년이 어울리는 것이 아주 중요하다. see also SituatedLearning ) 일종의 프로토타입을 만드는 작업을 하면 좋을 것 같다. 엄청나게 많은 것을 배우게 될 것이다.
  • ProjectVirush/Prototype . . . . 1 match
         [ProjectVirush/Rule]을 만족하는 것처럼 보이는 프로토타입을 만든다.
  • PyIde/BicycleRepairMan분석 . . . . 1 match
         코드 분석방법에서 Eclipse 의 Ctrl + Alt + H 를 눌렀을때 나오는 Method call hierarchy 기능으로 코드를 읽어나가는 것이 유용하다는 점을 알아내었다. StepwiseRefinement 를 역순으로 따라가는 느낌이랄까.
  • PyIde/SketchBook . . . . 1 match
         하지만, 손가락 동선의 경우 - ctrl + O 를 누르고 바로 메소드 이동을 한다. 일반 이동도 메소드 중간 이동은 CTRL +커서키. (이는 VIM 에서의 W, B) 위/아래는 커서키. 클래스로의 이동은 CTRL+SHIFT+T. Source Folding 도 주로 Outliner 에 의한 네비게이팅을 이용한다면 별로 쓸 일이 없다. 보통 의미를 두고 하는 행동들은 클래스나 메소드들 단위의 이동이므로, 그 밑의 구현 코드들에 대해 깊게 보지 않는다. (구현코드들에 대해 깊게 보는 경우가 생긴다면 십중팔구 Long Method 상황일것이다.)
  • PyUnit . . . . 1 match
          * PyUnit는 Python 에 기본적으로 포함되어있는 UnitTest Framework library이다. 하지만, UnitTest작성에 대한 기본적인 개념들을 쉽게 담고 있다고 생각하여 공부중. (솔직히 C++로 UnitTest할 엄두 안나서. --; Python으로 먼저 프로토타입이 되는 부분을 작성하고 다른 언어로 포팅하는 식으로 할까 생각중)
         === 여러개의 test method를 포함한 TestCase classes ===
         종종, 많은 작은 test case들이 같은 fixture를 사용하게 될 것이다. 이러한 경우, 우리는 DefaultWidgetSizeTestCase 같은 많은 작은 one-method class 안에 SimpleWidgetTestCase를 서브클래싱하게 된다. 이건 시간낭비이고,.. --a PyUnit는 더 단순한 메커니즘을 제공한다.
         여기에는 runTest 메소드가 없는대신, 두개의 다른 test 메소드를 가지고 있다. 클래스 인스턴스는 이제 각각 self.widget 을 생헝하고 각 인스턴스에 대해 따로 소멸되면서 각각의 test method를 실행한다.
  • PythonLanguage . . . . 1 match
          * 파이썬으로 프로토타입을 빨리 개발하고, 실행 속도를 요하는 부분은 C/C++ 나 자바 코드로 다시 작성해서 붙일수 있다. (["Jython"] 참고)
  • QueryMethod . . . . 1 match
         === Query Method ===
  • RAD . . . . 1 match
         RAD는 우수한 소프트웨어 개발 도구를 이용하여 전통적인 개발 방법보다 더 적은 시간과 비용을 투자하더라도 보다 나은 품질의 소프트웨어를 개발할 수 있는 소프트웨어 개발 과정을 말한다. 이러한 RAD 방식의 개발은 응용 프로그램의 전체 개발 과정을 하나로 통합하여 기존의 반복적이고 점진적인 소프트웨어 개발 과정은 그대로 수용하면서도, 개발 과정 초기에 사용자에게 실행 가능한 기본적인 프로토타입을 제시하여 사용자의 요구를 훨씬 더 명확하게 수용하여 차후에 일어날 수 있는 많은 문제를 줄이고, 설계 과정을 그대로 개발에 재사용함으로써 전체적인 개발 기간의 단축을 꾀하는 것을 목적으로 한다.
  • ReleaseDebugBuildStartGo의관계 . . . . 1 match
          이 코드를 릴리즈 빌드로 만들고, Start(CTRL+F5)로 실행할 때의 b값과 Go(F5)로 실행할 때의 b값을 체크하면 서로 다르게 나옵니다. Start의 경우 b의 값이 false가 나오고, Go의 경우 b의 값이 true로 나옵니다. 바꾸어 말하면 Start는 미초기화 변수를 0으로 놓고, Go는 0이 아닌 값으로 세팅한다는 것입니다. (실제로 bool 타입의 false 값을 VC6의 디버거로 읽으면 0입니다. VC7의 경우엔 false라고 나오지만요)
  • ResponsibilityDrivenDesign . . . . 1 match
          * Generates DesignPatterns. ChainofResponsibilityPattern, MediatorPattern, CommandPattern and TemplateMethodPattern are all generated by the method.
  • RubyLanguage/Container . . . . 1 match
          * 객체를 구조화된 방법으로 저장해둘 수 있는 추상 데이터 타입(ADT)
  • RubyLanguage/DataType . . . . 1 match
         = 루비의 데이터 타입 =
  • RubyLanguage/Expression . . . . 1 match
          * 아래에 있는 연산자는 method 로 정의되어 있으며 재정의가 가능하다.
          * method 로 정의되지 않은 연산자
          -> "method"
          * eql?: 서로 같은 값을 가지고 타입도 같아야 true
          * Integer class의 method. Integer가 나타내는 횟수만큼 반복
  • ScheduledWalk/석천 . . . . 1 match
         IntPair InputBoardSize(); // void InputBoardSize() 에서 IntPair InputBoardSize() 로 리턴값이 바뀌었습니다. 어차피 처음에 만든 프로토타입들은 말 그대로 '뼈' 이기에.
  • Spring/탐험스터디/2011 . . . . 1 match
          1.2 http의 4가지 method : POST, GET, PUT, DELETE
          리소스 함수의 4가지 method : CRUD(Create, Read, Update, Delete)
          DB의 4가지 method : Insert, Select, Update, Delete
          at java.security.AccessController.doPrivileged(Native Method)
  • TddRecursiveDescentParsing . . . . 1 match
         대강 다음과 같은 식으로 접근했고요. 테스트코드 2-3줄쓰고 파서 메인코드 작성하고 하는 식으로 접근했습니다. (["Refactoring"] 을 하다보면 FactoryMethodPattern 과 CompositePattern 이 적용될 수 있을 것 같은데, 아직은 일단.)
  • TddWithWebPresentation . . . . 1 match
         즉, 일종의 Template Method 의 형태로서 Testable 하기 편한 ViewPageAction 의 서브클래스를 만들었다. 어차피 중요한것은 해당 표현 부분이 잘 호출되느냐이므로, 이에 대해서는 서브클래스로서 텍스트를 비교했다.
  • TheWarOfGenesis2R/일지 . . . . 1 match
          * 리팩토링의 위대함을 계속 느껴 버렸다. Extract Method는 기본이고, 상위 클래스로 올리기, 등등 이것저것 하니까 매우 간단해지는 것을 느꼈다.
  • UbuntuLinux . . . . 1 match
         http://www.ubuntu.or.kr/wiki.php/InstallingInputMethods#s-1.3
  • UnitTest . . . . 1 match
         Q: 한가지 의문나는 점이 있어서 , 사용자가 임의로 생성할 수 없는(예를들면 Socket과 같은 시스템이 생성해주는 데이타 타입) 데이타 형이 파라미터로 있을 때는 어떻게 테스트 하는 것이 좋을까요?
  • UnixSocketProgrammingAndWindowsImplementation . . . . 1 match
         === type: 서비스 타입 ===
  • UploadFileMacro . . . . 1 match
         이 값을 1로 설정하였을 경우, 업로드 할 때의 정보를 이용해서 파일 타입을 판별합니다.
  • ViImproved/설명서 . . . . 1 match
         warn warn 터미널 타입을 설정
  • VisualStuioDotNetHotKey . . . . 1 match
         Ctrl-F12 : 선언으로 이동(예 : 대략 헤더파일 프로토타입으로 이동)
  • WhatToExpectFromDesignPatterns . . . . 1 match
         == An Adjunct to Existing Methods ==
         DesignPatterns are an important piece that's been missing from object-oriented design methods. (primitive techniques, applicability, consequences, implementations ...)
  • Yggdrasil/가속된씨플플/1장 . . . . 1 match
          * 인터페이스: 해당 타입의 객체에 사용 가능한 연산(operation)들의 집합
  • ZIM . . . . 1 match
          * 1월 7일 유저인터페이스 프로토타입에 대한 생각을 맞춰보려합니다. 학교서 뵙죠. ^^;
  • ZeroPageServer/SubVersion . . . . 1 match
          CVS의 대용으로 개발되기 시작하여, 최근 fsfs의 지원 이후로 CVS를 대체해 나가는 추세이다. 많은 opensource 기반 프로젝트들이 SVN으로 옮겨갈 준비들을 하고 있다. 최신버전인 1.2버전부터는 bdb가 기본이었던 것이 fsfs가 기본 타입으로 설정되었다.
  • bitblt로 투명배경 구현하기 . . . . 1 match
         [(beonit)레밍즈프로젝트/프로토타입]에서 [MFC]기반으로 더블 버퍼링을 포함해서 간단하게 클래싱 해 보았습니다.
  • html5/canvas . . . . 1 match
          * 이미지의 인코딩 방법을 MIME 타입으로 지정한다.
  • 김희성/ShortCoding/최대공약수 . . . . 1 match
          '''컴파일러''' - gcc 컴파일러는 사용된 function을 확인하여 필요한 header file을 자동으로 include 해줍니다. 또한 gcc 컴파일러는 타입이 선언되지 않은 변수는 int형으로 처리합니다. 이로인해서 main의 본래 형식은 int main(int,char**)이지만 변수형을 선언하지 않으면 두번째 인자도 int형으로 처리됩니다.
  • 덜덜덜/숙제제출페이지 . . . . 1 match
         위에 이름까지 같이 함께 묶어서 넣고 싶으면 .. 이름은 타입이 다르기때문에 구조체라는것을 써서 같이 묶어서 넣을수 있습니다. 구조체는 나중에 배울겁니다. ^^ 그리고 주석을 사용안하고 변수명으로 의미를 알수 있게 해줄수 있다면 그게 더 좋습니다. 변수명이 조금 길어지더라도 주석 없어도 이해가도록 짜면 좋습니다.(리펙토링에 나오는 얘기..) 예를 들면 국어 성적 변수명은 KoreaScore 혹은 ScoreOfKorea 이런식으로 쓸수 있습니다. - [상협]
  • 데블스캠프2011/첫째날/후기 . . . . 1 match
          * 데블스 캠프를 낮밤을 함께 하자 제안했었는데, 어쩌다 보니 낮 시간인 날에 참가 못하게 되버렸지요 ㅠ.ㅠ SE 팀플을 할 때 svn을 써보긴 했지만.. 폴더 단위로 이동시키다가 supclipse로 하니 좋았어요:) 동시다발적으로 하려다 보니 충돌이 많이 나서 잘 안될 줄 알았는데..마지막에 프로그램이 돌아가는 걸 보고 감동적이었던! 처음에 클래스 선언 타입이나 그런 준비를 하는 것이 얼마나 중요한 지 깨달았어요.
  • 데블스캠프2012/첫째날/후기 . . . . 1 match
          * 구조체 타입캐스팅때는 저도 잠깐 헷깔렸네요. 음, 아직 배울게 많군요.
  • 디자인패턴 . . . . 1 match
          * http://www.econ.kuleuven.ac.be/tew/academic/infosys/Members/Snoeck/litmus2.ps - Design Patterns As Litmus Paper To Test The Strength Of Object Oriented Methods
  • 레밍즈프로젝트 . . . . 1 match
         [레밍즈프로젝트/프로토타입]
  • 레밍즈프로젝트/프로토타입/MFC더블버퍼링 . . . . 1 match
         SeeAlso) [레밍즈프로젝트], [레밍즈프로젝트/프로토타입], [(zeropage)MFC]
  • 레밍즈프로젝트/프로토타입/에니메이션 . . . . 1 match
         [레밍즈프로젝트], [레밍즈프로젝트/프로토타입]
  • 레밍즈프로젝트/프로토타입/에니메이션버튼 . . . . 1 match
         SeeAlso) [레밍즈프로젝트], [레밍즈프로젝트/프로토타입]
  • 레밍즈프로젝트/프로토타입/파일스트림 . . . . 1 match
         SeeAlso) [레밍즈프로젝트], [레밍즈프로젝트/프로토타입]
  • 문제풀이/1회 . . . . 1 match
          ==== Normal Method ====
  • 새싹교실/2011/學高/8회차 . . . . 1 match
          * 컴파일은 안 해봤지만 함수 원형 선언 시 매개변수의 타입은 왜 써주지 않았는지 궁금하네요. 받을 때는 num으로 받고 쓸 때는 n으로 쓴 것도; 그리고 전역 변수를 안 써도 리턴 값을 통해 카운트 충분히 할 수 있을 것 같은데... - [김수경]
  • 새싹교실/2011/무전취식/레벨1 . . . . 1 match
         변수타입(int,float, double, long) 변수이름,변수이름,변수이름;
  • 새싹교실/2011/무전취식/레벨5 . . . . 1 match
          * 함수는 input과, 내부 동작, ouput으로 이루어져있습니다. 함수의 return 타입과 return은 꼭 맞추어야합니다.
  • 새싹교실/2012/AClass . . . . 1 match
          1. 함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요.
  • 새싹교실/2012/AClass/2회차 . . . . 1 match
         포인터란 메모리의 주소 값을 저장하기 위한 변수. 타입에 상관없이 크기는 4바이트(컴퓨터 주소 체계가 4바이트로 표현된다는 것을 의미)
  • 새싹교실/2012/개차반 . . . . 1 match
          * 데이터 타입
  • 새싹교실/2012/나도할수있다 . . . . 1 match
          * 새싹 첫수업을 했다. 도중에 현민이가 영어 수업을 받으러가서 한시간 비었다. 다음주부터는 시간을 한시간 연기하여 세시부터 시작할 예정이다. gcc의사용법을 간단히 설명했고, gdb는 학생들이 디버깅을 몰라서 설명해주지 않았다. printf사용법부터 시작해서 연산자, 데이터 타입, while,do-while,for문을 설명했다. 현민이는 쉰게 잘 따라오고, 윤호도 천천히 따라오고 있어서 앞으로 수업하는데에 지장은 없을 것 같다. 수업을 다 하고 생각해보니 너무 우왕좌왕하게 가르쳤던것 같다. 다음시간은 더욱 열심히 준비해야겠다. - 추성준
  • 새싹교실/2012/새싹교실강사교육/3주차 . . . . 1 match
         3.2 같은 타입(Type)의 변수를 한꺼번에 관리해주는 배열(array)란?
  • 새싹교실/2012/열반/120319 . . . . 1 match
          * C언어에는 boolean 타입이 없습니다. 보통 int로 참과 거짓을 표현하고, 모든 비트가 0일 경우에만 거짓이고, 그 외는 참입니다.
  • 새싹교실/2012/탈락 . . . . 1 match
          * 변수, 데이타 타입, 반복문, 조건문 등을 가르침 기본적인 문법을 가르쳐주고 직접 그 문법을 사용하여 사용법이 익숙해지게 끔 하였다.
  • 새싹교실/2013/책상운반 . . . . 1 match
          * 데이터타입에는 어떤 것들이 있는지
  • 영호의바이러스공부페이지 . . . . 1 match
          Detection Method: ViruScan V64+, VirexPC, F-Prot 1.12+, NAV, IBM Scan 2.00+
         AL = method code
          - SIMPLE ENCRYPTION METHODS -
          One easy way to encrypt data is the XOR method. XOR is a matamatical
         While the virus is no great wonder the simple encryption method is what is
  • 위키QnA . . . . 1 match
          현재의 FrontPage가 하는 역할이 좀 많다고 생각하는데. (Long Method 에 대해서는 Refactoring이 필요한 법. --a) FrontPage가 하는 역할들에 대해 페이지들을 슬슬 나누는 것은 어떨까 생각중. --석천
  • 임인택/삽질 . . . . 1 match
          * DirectDraw 를 사용하려다가 계속 정의되지 않은 타입이라 나옴 - DX SDk 인클루드 순서를 맨 위로, 라이브러리도 마찬가지.
  • 정모/2004.8.9 . . . . 1 match
          *여러 팀이 각자의 프로토타입을 제작 ([ZeroPageMagazine]의 [나휘동]의 의견 참고)
  • 정모/2012.2.3 . . . . 1 match
          * 조직이나 팀을 운영하는 데에 답이 존재하는 경우는 많지 않을 겁니다. 부회장님과 함께 ZeroPage를 이끌어 가는데에 다른 경험이나 시각이 필요하다는 생각이 든다면 도움을 요청하는데 주저하지 마세요. 1년 목표나 가치를 세워둔다면 자잘한 결정에 대한 비용을 줄일 수 있을겁니다. 자신이 어떤 타입의 리더인지를 파악하고 주위에 단점을 보완해줄 사람들을 두세요. 그래도 뭐 하나 하려면 머리 뽀개집니다ㅋㅋ 때로는 반대를 무릅쓰고 밀어부치는 것도 필요할거에요. 참고로 남을 설득할 때에는 처음부터 여러명을 설득하기 보다 한두명씩 자신의 편으로 끌어들이면 반발이 크지 않아요(divide and conquer). 끝으로 가장 중요한 것은 책임입니다. 모든 책임은 1차적으로 회장에게 있는겁니다. 자기가 직접적으로 한 행동이 아니라고 남에게 미루면 안돼요. 사람들의 신뢰를 잃게됩니다. 임원직을 후배님들께 물려드리자니 걱정이 많이 되네요.. 그치만 언제까지 ZP에 있을 수는 없으니ㅋㅋㅋ 화이팅!! 잘하려고 하지 말고 할 수 있는것을 하세요. 안못난 선배 물러갑니다. - [서지혜]
  • 정모/2012.7.18 . . . . 1 match
          * 자바 스터디 - Generic에 대해서 다루었는데, 평소에 써 본 일이 없었던 만큼 언어 차원에서 타입 제한등을 해 주는 것이 편했다. batch라는 개념에 대해 이야기를 들을 수 있어서 좋았다.
  • 정모/2012.8.1 . . . . 1 match
          * 이론(토요일) - 프로토타입
  • 졸업논문/결론 . . . . 1 match
         기존의 웹 어플리케이션을 만들 때 설계한 대로 데이터베이스를 사용하도록 프로그래밍 하는 시간을 줄였다. 기민하게 웹 어플리케이션을 작성할 수 있기 때문에, 개발자는 데이터베이스를 올바로 설계하고 사용자에게 정말로 필요한 기능을 구현하는 데 집중할 수 있다. 또한 실제로 사용하기에 부족한 점이 있더라도, 프로토타입을 만들어 보려면 더할 나위 없이 좋은 프레임워크라고 생각한다.
  • 졸업논문/본론 . . . . 1 match
         기본적으로 지원 되는 레코드 삽입, 삭제, 변경은 자동으로 사용자 화면까지 만들어주는 장점을 가진다. 대부분 웹 애플리케이션이 레코드를 한 건씩 입력하는 인터페이스를 가지기 때문에, 개발 전반부에 걸친 데이터 삽입, 삭제, 변경을 자동화할수 있기 때문이다. 특히 삽입, 변경은 저장이란 단일 개념으로 보고 save메소드로 추상화하였다. 또한 삭제는 관련된 레코드를 함께 지워주는 기능까지 제공한다. 이러한 기능은 Model클래스에 정의된 데이터 타입에 따라 자동으로 이루어진다. 따라서 삽입, 삭제, 변경 SQL문을 실행하는 인터페이스에 많은 노력을 기울이지 않고 기민하게 전체 시스템을 설계함에 집중할 수 있다.
  • 지도분류 . . . . 1 match
         ||["ExtremeProgramming"]|| Agile Methodology 인 ExtremeProgramming 에 대한 전반적 설명||
  • 최소정수의합/임인택2 . . . . 1 match
         에서 rnd의 타입이 Integer로 되었는데 Integer는 다른 값으로 나눠지지 않았다(내가 방법을 모르고 있을수도 있겠지만). haskell wiki를 뒤져 toRational 이라는 함수를 찾았지만 출력되는 모양이 영 마음에 들지 않는다.
  • 프로그램내에서의주석 . . . . 1 match
         약간 변명이라면, 개인적 경험에서는 주석이 달린 코드는 주석에 시선이 먼저가고, 주석이 없는 코드에는 함수 프로토타입에 시선이 먼저간다라는 것. 하지만, 의도가 전해지지 않았다면 역시 뭐 무의미한것이겠지. --석천
Found 230 matching pages out of 7540 total pages (5000 pages are searched)

You can also click here to search title.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
Processing time 0.1932 sec